/*
 * Chefhomey Toolkit — front-end styles for shortcodes and Elementor
 * widgets. Defines the same design tokens as the Chefhomey theme
 * (assets are intentionally duplicated, not shared, so this plugin
 * renders correctly even on a different active theme) and is a safe,
 * idempotent no-op when the Chefhomey theme's own style.css already
 * defines these classes.
 */

:root{
	--ch-bg:            #FBF8F3;
	--ch-bg-alt:        #F3EEE3;
	--ch-surface:       #FFFFFF;
	--ch-text:          #2B2620;
	--ch-text-muted:    #6B6255;
	--ch-border:        #E7DFD3;
	--ch-accent:        #C4633A;
	--ch-accent-dark:   #A34F2C;
	--ch-accent-soft:   #F3DDD1;
	--ch-sage:          #7A9471;
	--ch-sage-dark:     #5F7757;
	--ch-success:       #4F7A5A;
	--ch-error:         #B3432E;
	--ch-radius-sm:     6px;
	--ch-radius-md:     14px;
	--ch-radius-lg:     28px;
	--ch-shadow-sm:     0 1px 3px rgba(43,38,32,.06);
	--ch-shadow-md:     0 8px 24px rgba(43,38,32,.08);
}

.ch-btn{ display:inline-flex; align-items:center; justify-content:center; gap:.5em; padding:.9em 1.9em; border-radius:999px; font-weight:600; font-size:.98rem; border:2px solid transparent; cursor:pointer; text-decoration:none; transition:transform .15s ease, box-shadow .15s ease, background .15s ease, color .15s ease; }
.ch-btn:hover{ transform: translateY(-2px); }
.ch-btn--primary{ background: var(--ch-accent); color:#fff; box-shadow: var(--ch-shadow-sm); }
.ch-btn--primary:hover{ background: var(--ch-accent-dark); color:#fff; }
.ch-btn--secondary{ background: transparent; color: var(--ch-text); border-color: var(--ch-border); }
.ch-btn--secondary:hover{ border-color: var(--ch-accent); color: var(--ch-accent-dark); }
.ch-btn--sage{ background: var(--ch-sage); color:#fff; }
.ch-btn--sage:hover{ background: var(--ch-sage-dark); color:#fff; }
.ch-btn--block{ width:100%; }

.ch-grid{ display:grid; gap: clamp(1rem,2vw,2rem); }
.ch-grid--1{ grid-template-columns: 1fr; }
.ch-grid--2{ grid-template-columns: repeat(2,1fr); }
.ch-grid--3{ grid-template-columns: repeat(3,1fr); }
.ch-grid--4{ grid-template-columns: repeat(4,1fr); }
@media (max-width: 900px){ .ch-grid--3, .ch-grid--4{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 600px){ .ch-grid--2, .ch-grid--3, .ch-grid--4{ grid-template-columns: 1fr; } }

.ch-card{ background: var(--ch-surface); border:1px solid var(--ch-border); border-radius: var(--ch-radius-md); padding:1.75rem; box-shadow: var(--ch-shadow-sm); }

.ch-chef-card{ background: var(--ch-surface); border:1px solid var(--ch-border); border-radius: var(--ch-radius-md); overflow:hidden; box-shadow: var(--ch-shadow-sm); display:flex; flex-direction:column; transition: box-shadow .2s ease, transform .2s ease; }
.ch-chef-card:hover{ box-shadow: var(--ch-shadow-md); transform: translateY(-4px); }
.ch-chef-card__media{ aspect-ratio: 4/3; background: linear-gradient(150deg, var(--ch-bg-alt), var(--ch-accent-soft)); display:flex; align-items:center; justify-content:center; color: var(--ch-accent-dark); font-size:2rem; text-decoration:none; }
.ch-chef-card__body{ padding:1.25rem; display:flex; flex-direction:column; gap:.5rem; flex:1; }
.ch-chef-card__name{ margin:0; font-size:1.15rem; }
.ch-chef-card__name a{ color: var(--ch-text); text-decoration:none; }
.ch-chef-card__meta{ font-size:.85rem; color: var(--ch-text-muted); display:flex; gap:.6rem; flex-wrap:wrap; }
.ch-chef-card__meta span{ background: var(--ch-bg-alt); padding:.2em .7em; border-radius:999px; }
.ch-chef-card__excerpt{ font-size:.92rem; color: var(--ch-text-muted); flex:1; }
.ch-chef-card__footer{ display:flex; align-items:center; justify-content:space-between; margin-top:.5rem; }
.ch-chef-card__price{ font-weight:700; color: var(--ch-accent-dark); }

.ch-chef-hero{ display:grid; grid-template-columns: 380px 1fr; gap: 2.5rem; align-items:start; }
@media (max-width: 860px){ .ch-chef-hero{ grid-template-columns: 1fr; } }
.ch-chef-hero__media{ aspect-ratio:1; border-radius: var(--ch-radius-lg); background: linear-gradient(150deg, var(--ch-bg-alt), var(--ch-accent-soft)); box-shadow: var(--ch-shadow-md); overflow:hidden; }
.ch-tag-list{ display:flex; gap:.5rem; flex-wrap:wrap; margin:.75rem 0 1.25rem; }
.ch-tag-list span{ font-size:.82rem; background: var(--ch-bg-alt); color: var(--ch-text); padding:.3em .9em; border-radius:999px; }
.ch-tag-list--skills span{ background: var(--ch-accent-soft); color: var(--ch-accent-dark); }

/* Front-end "My Chef Profile" gallery picker (reused from the admin meta box markup) */
.chefhomey-gallery-list{ display:flex; flex-wrap:wrap; gap:10px; margin:0 0 12px; padding:0; list-style:none; }
.chefhomey-gallery-item{ position:relative; width:90px; height:90px; border:1px solid var(--ch-border); border-radius:8px; overflow:hidden; }
.chefhomey-gallery-item img{ width:100%; height:100%; object-fit:cover; display:block; }
.chefhomey-gallery-remove{
	position:absolute; top:2px; right:2px; background:rgba(0,0,0,.65); color:#fff;
	width:20px; height:20px; line-height:18px; border-radius:50%; text-align:center;
	font-size:14px; cursor:pointer; border:none; padding:0;
}
.chefhomey-gallery-remove:hover{ background: var(--ch-error); }

.ch-chef-gallery{ display:grid; grid-template-columns: repeat(4,1fr); gap:1rem; margin-top:1.5rem; }
@media (max-width:900px){ .ch-chef-gallery{ grid-template-columns: repeat(3,1fr); } }
@media (max-width:600px){ .ch-chef-gallery{ grid-template-columns: repeat(2,1fr); } }
.ch-chef-gallery__item{ display:block; aspect-ratio:4/3; border-radius: var(--ch-radius-sm); overflow:hidden; box-shadow: var(--ch-shadow-sm); transition: transform .15s ease, box-shadow .15s ease; }
.ch-chef-gallery__item:hover{ transform: translateY(-2px); box-shadow: var(--ch-shadow-md); }
.ch-chef-gallery__item img{ width:100%; height:100%; object-fit:cover; }

.ch-trust-badges{ display:flex; flex-wrap:wrap; gap:1.5rem; justify-content:center; }
.ch-trust-badge{ display:flex; align-items:center; gap:.6rem; background: var(--ch-surface); border:1px solid var(--ch-border); padding:.8em 1.3em; border-radius:999px; font-weight:600; font-size:.92rem; box-shadow: var(--ch-shadow-sm); }
.ch-trust-badge__icon{ color: var(--ch-sage-dark); font-size:1.1rem; }

.ch-legal-footer-strip{ font-size:.82rem; color: var(--ch-text-muted); background: var(--ch-bg-alt); border-radius: var(--ch-radius-sm); padding:.9em 1.2em; text-align:center; }

.ch-legal-toggle{ display:flex; gap:.5rem; justify-content:center; margin-bottom:2.5rem; flex-wrap:wrap; }
.ch-legal-toggle button{ background: var(--ch-surface); border:1px solid var(--ch-border); border-radius:999px; padding:.6em 1.6em; font-weight:600; cursor:pointer; color: var(--ch-text-muted); }
.ch-legal-toggle button.is-active{ background: var(--ch-accent); border-color: var(--ch-accent); color:#fff; }
.ch-legal-notice{ background: var(--ch-bg-alt); border-inline-start:4px solid var(--ch-accent); padding:1.2em 1.4em; border-radius: var(--ch-radius-sm); font-size:.95rem; margin-bottom:2rem; }
.ch-legal-block{ max-width:820px; margin-inline:auto; }
.ch-legal-block h2{ margin-top:2em; font-size:1.35rem; }
.ch-legal-block[dir="rtl"]{ text-align:right; font-family:'Tajawal','Segoe UI',Tahoma,sans-serif; }
.ch-lang-panel{ display:none; }
.ch-lang-panel.is-active{ display:block; }

.ch-form{ display:grid; gap:1rem; max-width:640px; }
.ch-form--2col{ grid-template-columns: 1fr 1fr; }
@media (max-width:600px){ .ch-form--2col{ grid-template-columns: 1fr; } }
.ch-field{ display:flex; flex-direction:column; gap:.4rem; }
.ch-field label{ font-size:.85rem; font-weight:600; color: var(--ch-text-muted); }
.ch-field input, .ch-field select, .ch-field textarea{ background: var(--ch-surface); border:1px solid var(--ch-border); border-radius: var(--ch-radius-sm); padding:.8em 1em; color: var(--ch-text); }
.ch-field input:focus, .ch-field select:focus, .ch-field textarea:focus{ outline:none; border-color: var(--ch-accent); box-shadow: 0 0 0 3px var(--ch-accent-soft); }
.ch-form__notice{ padding:1em 1.2em; border-radius: var(--ch-radius-sm); font-size:.92rem; margin-bottom:1rem; }
.ch-form__notice--success{ background: rgba(79,122,90,.12); color: var(--ch-success); }
.ch-form__notice--error{ background: rgba(179,67,46,.12); color: var(--ch-error); }

.ch-eyebrow{ display:inline-block; font-size:.78rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color: var(--ch-sage-dark); background: rgba(122,148,113,.12); padding:.35em .9em; border-radius:999px; margin-bottom:1em; }
.ch-lead{ font-size:1.15rem; color: var(--ch-text-muted); }
.ch-center{ text-align:center; }
.ch-page-header{ margin-bottom:1.5rem; }
.ch-hero__actions{ display:flex; gap:1rem; flex-wrap:wrap; margin-top:1.5rem; }
.ch-trustline{ margin-top:1.5rem; font-size:1.1rem; color: var(--ch-sage-dark); }

/* ------------------------------------------------------------------ *
 * Feature wave (v2.1.0): Favorites, Badges, Statistics, Messages,
 * Requests, Memberships, Marketplace boosts, Social Login, Geolocation.
 * ------------------------------------------------------------------ */

.ch-favorite-btn{ background:none; border:1px solid var(--ch-border); border-radius:50%; width:2.4em; height:2.4em; display:inline-flex; align-items:center; justify-content:center; font-size:1.1rem; color: var(--ch-text-muted); cursor:pointer; transition: color .15s ease, border-color .15s ease, transform .15s ease; }
.ch-favorite-btn:hover{ transform: translateY(-1px); border-color: var(--ch-accent); }
.ch-favorite-btn.is-favorited{ color: var(--ch-accent); border-color: var(--ch-accent); }
.ch-favorites-grid, .ch-open-requests{ margin-top:1rem; }

.ch-badges{ display:flex; flex-wrap:wrap; gap:.5rem; margin:.75rem 0; }
.ch-badge{ display:inline-flex; align-items:center; gap:.35em; font-size:.8rem; font-weight:600; background: var(--ch-accent-soft); color: var(--ch-accent-dark); padding:.35em .9em; border-radius:999px; }

.ch-stats-widget{ margin:1rem 0; }
.ch-stats-box{ background: var(--ch-surface); border:1px solid var(--ch-border); border-radius: var(--ch-radius-md); padding:1.25rem; text-align:center; }
.ch-stats-number{ display:block; font-size:1.8rem; font-weight:700; color: var(--ch-accent-dark); }
.ch-stats-label{ display:block; font-size:.8rem; color: var(--ch-text-muted); margin-top:.25rem; }

.ch-social-link{ display:inline-block; margin-inline-end:1rem; color: var(--ch-sage-dark); font-weight:600; text-decoration:none; }
.ch-social-links{ margin:.5rem 0; }
.ch-opening-hours{ border-collapse:collapse; margin:.5rem 0; }
.ch-opening-hours th, .ch-opening-hours td{ text-align:left; padding:.25em 1em .25em 0; font-size:.9rem; color: var(--ch-text-muted); }

.ch-inbox-app{ min-height:420px; }
.ch-inbox-layout{ display:grid; grid-template-columns: 260px 1fr; gap:1rem; border:1px solid var(--ch-border); border-radius: var(--ch-radius-md); overflow:hidden; min-height:420px; }
@media (max-width:700px){ .ch-inbox-layout{ grid-template-columns: 1fr; } }
.ch-inbox-threads{ background: var(--ch-bg-alt); border-inline-end:1px solid var(--ch-border); overflow-y:auto; }
.ch-inbox-thread-list{ list-style:none; margin:0; padding:0; }
.ch-inbox-thread-item{ padding:.9em 1.1em; border-bottom:1px solid var(--ch-border); cursor:pointer; display:flex; flex-direction:column; gap:.2rem; position:relative; }
.ch-inbox-thread-item:hover{ background: var(--ch-surface); }
.ch-inbox-thread-item.is-active{ background: var(--ch-surface); border-inline-start:3px solid var(--ch-accent); }
.ch-inbox-thread-item.is-unread strong{ color: var(--ch-accent-dark); }
.ch-inbox-preview{ font-size:.82rem; color: var(--ch-text-muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ch-inbox-badge{ position:absolute; top:.9em; right:1.1em; background: var(--ch-accent); color:#fff; font-size:.72rem; font-weight:700; border-radius:999px; padding:.1em .55em; }
.ch-inbox-conversation{ display:flex; flex-direction:column; padding:1rem; }
.ch-inbox-messages{ flex:1; overflow-y:auto; display:flex; flex-direction:column; gap:.6rem; padding-bottom:1rem; }
.ch-inbox-empty{ color: var(--ch-text-muted); font-size:.92rem; }
.ch-inbox-bubble{ max-width:75%; padding:.7em 1em; border-radius: var(--ch-radius-md); background: var(--ch-bg-alt); align-self:flex-start; font-size:.92rem; }
.ch-inbox-bubble.is-mine{ align-self:flex-end; background: var(--ch-accent-soft); color: var(--ch-accent-dark); }
.ch-inbox-reply-form{ display:flex; gap:.6rem; border-top:1px solid var(--ch-border); padding-top:.8rem; }
.ch-inbox-reply-form textarea{ flex:1; resize:vertical; border:1px solid var(--ch-border); border-radius: var(--ch-radius-sm); padding:.6em .8em; }
.ch-inbox-reply-form button{ background: var(--ch-accent); color:#fff; border:none; border-radius:999px; padding:0 1.4em; font-weight:600; cursor:pointer; }

.ch-request-card{ background: var(--ch-surface); border:1px solid var(--ch-border); border-radius: var(--ch-radius-md); padding:1.5rem; margin-bottom:1.25rem; box-shadow: var(--ch-shadow-sm); }
.ch-request-status{ font-size:.8rem; font-weight:600; color: var(--ch-text-muted); }
.ch-request-offers{ list-style:none; margin:.75rem 0 0; padding:0; display:flex; flex-direction:column; gap:.5rem; }
.ch-offer-form{ display:flex; flex-wrap:wrap; gap:.6rem; align-items:flex-start; margin-top:.75rem; max-width:none; }
.ch-offer-form input, .ch-offer-form textarea{ border:1px solid var(--ch-border); border-radius: var(--ch-radius-sm); padding:.6em .8em; }

.ch-membership-plans{ margin-top:1rem; }
.ch-plan-card{ background: var(--ch-surface); border:1px solid var(--ch-border); border-radius: var(--ch-radius-md); padding:1.75rem; box-shadow: var(--ch-shadow-sm); text-align:center; }
.ch-plan-card.is-current{ border-color: var(--ch-accent); box-shadow: var(--ch-shadow-md); }
.ch-plan-price{ font-size:1.4rem; font-weight:700; color: var(--ch-accent-dark); margin:.4rem 0 1rem; }

.ch-social-login-buttons{ display:flex; flex-direction:column; gap:.75rem; margin:1rem 0; }
.ch-social-login-btn{ text-align:center; }

.ch-single-map, .ch-directory-map{ border-radius: var(--ch-radius-md); overflow:hidden; border:1px solid var(--ch-border); margin:1rem 0; }

.ch-search-alerts-list{ list-style:none; margin:1rem 0; padding:0; display:flex; flex-direction:column; gap:.75rem; }
.ch-search-alerts-item{ background: var(--ch-surface); border:1px solid var(--ch-border); border-radius: var(--ch-radius-sm); padding:.9em 1.1em; display:flex; flex-wrap:wrap; gap:.75rem; align-items:center; }
.ch-search-alerts-summary{ color: var(--ch-text-muted); font-size:.88rem; flex:1; }
.ch-search-alerts-freq{ font-size:.78rem; font-weight:600; background: var(--ch-bg-alt); padding:.2em .8em; border-radius:999px; }
