/* =========================================================================
   you&you — calm-luxury wellness theme
   Fraunces (display serif) · Hanken Grotesk (body) · emerald on warm white
   ========================================================================= */

:root{
	--bg:        #FAF8F4;
	--bg-2:      #F3EEE5;
	--mint:      #EAF2ED;
	--mint-2:    #DCEAE1;
	--ink:       #1C1C19;
	--ink-soft:  #4C4C45;
	--stone:     #8C8A80;
	--line:      #E6E0D4;
	--line-2:    #DED7C8;
	--emerald:   #1B9E77;
	--emerald-d: #157E5F;
	--emerald-deep:#0F5C44;
	--forest:    #172019;
	--cream:     #F4EFE6;
	--white:     #FFFFFF;

	--serif: "Playfair Display", Georgia, "Times New Roman", serif;
	--sans:  "Hanken Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

	--container: 1240px;
	--gutter: clamp(1.25rem, 4vw, 3rem);
	--sec-pad: clamp(4.5rem, 9vw, 8.5rem);
	--radius: 4px;
	--radius-lg: 14px;

	--ease: cubic-bezier(.22,.61,.36,1);
}

/* ---------- reset-ish ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
	margin:0;
	background:var(--bg);
	color:var(--ink);
	font-family:var(--sans);
	font-size:1.0625rem;
	line-height:1.72;
	font-weight:400;
	-webkit-font-smoothing:antialiased;
	text-rendering:optimizeLegibility;
	overflow-x:hidden;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; }
h1,h2,h3,h4,h5{ margin:0; font-family:var(--serif); font-weight:400; line-height:1.08; letter-spacing:-.005em; color:var(--ink); }
p{ margin:0 0 1.1em; }
::selection{ background:var(--emerald); color:var(--cream); }

.container{ width:100%; max-width:var(--container); margin-inline:auto; padding-inline:var(--gutter); }

/* ---------- typography helpers ---------- */
.eyebrow{
	font-family:var(--sans);
	font-size:.72rem; font-weight:600;
	letter-spacing:.24em; text-transform:uppercase;
	color:var(--emerald);
	display:inline-flex; align-items:center; gap:.7em;
	margin:0 0 1.3rem;
}
.eyebrow::before{ content:""; width:1.9rem; height:1px; background:var(--emerald); opacity:.5; }
.eyebrow--center{ justify-content:center; }
.eyebrow--center::after{ content:""; width:1.9rem; height:1px; background:var(--emerald); opacity:.5; }

.display{ font-size:clamp(2.7rem, 6.2vw, 5.4rem); font-weight:400; letter-spacing:-.012em; }
.h-sec{ font-size:clamp(2.05rem, 4.3vw, 3.35rem); font-weight:300; }
.lede{ font-size:clamp(1.12rem,1.7vw,1.4rem); line-height:1.55; color:var(--ink-soft); font-weight:300; }
.muted{ color:var(--ink-soft); }
.serif-i{ font-style:italic; }

/* ---------- buttons ---------- */
.btn{
	--bh:#157E5F;
	display:inline-flex; align-items:center; justify-content:center; gap:.6em;
	background:var(--emerald); color:var(--cream);
	font-family:var(--sans); font-weight:600; font-size:.92rem; letter-spacing:.02em;
	padding:1.02em 2.1em; border:1px solid var(--emerald); border-radius:100px;
	transition:background .35s var(--ease), border-color .35s var(--ease), transform .35s var(--ease), color .35s var(--ease);
	white-space:nowrap;
}
.btn:hover{ background:var(--emerald-d); border-color:var(--emerald-d); transform:translateY(-2px); }
.btn--sm{ padding:.72em 1.35em; font-size:.82rem; }
.btn--ghost{ background:transparent; color:var(--ink); border-color:var(--line-2); }
.btn--ghost:hover{ background:var(--ink); color:var(--cream); border-color:var(--ink); }
.btn--light{ background:var(--cream); color:var(--forest); border-color:var(--cream); }
.btn--light:hover{ background:#fff; border-color:#fff; }
.btn--block{ width:100%; }

.link-underline{
	display:inline-flex; align-items:center; gap:.55em;
	font-weight:600; font-size:.9rem; letter-spacing:.02em; color:var(--ink);
	padding-bottom:.2em; position:relative;
}
.link-underline::after{ content:""; position:absolute; left:0; bottom:0; width:100%; height:1px; background:var(--ink); transform-origin:right; transform:scaleX(1); transition:transform .4s var(--ease); }
.link-underline:hover::after{ transform-origin:left; transform:scaleX(0); }
.link-underline svg{ transition:transform .4s var(--ease); }
.link-underline:hover svg{ transform:translateX(4px); }

/* =========================================================================
   Announcement + Header
   ========================================================================= */
.yy-skip{ position:absolute; left:-9999px; top:0; background:var(--ink); color:#fff; padding:.6em 1em; z-index:1000; }
.yy-skip:focus{ left:1rem; top:1rem; }

.yy-announce{
	background:var(--forest); color:var(--cream);
	display:flex; align-items:center; justify-content:center; gap:1.1rem;
	font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; font-weight:500;
	padding:.62rem 1rem; text-align:center;
}
.yy-announce .yy-dot{ color:var(--emerald); }
@media(max-width:640px){ .yy-announce span:not(.yy-dot):nth-child(n+3){ display:none; } .yy-announce .yy-dot{ display:none; } }

.yy-header{
	position:sticky; top:0; z-index:900;
	background:var(--bg);
	border-bottom:1px solid transparent;
	transition:background .4s var(--ease), border-color .4s var(--ease), box-shadow .4s var(--ease);
}
.yy-header-inner{ display:flex; align-items:center; justify-content:space-between; gap:1.5rem; height:82px; }
.yy-logo img{ width:clamp(118px,12vw,150px); height:auto; transition:filter .4s var(--ease); }
.yy-nav{ margin-inline:auto; }
.yy-menu{ list-style:none; display:flex; gap:2.1rem; margin:0; padding:0; }
.yy-menu a{
	font-size:.86rem; font-weight:500; letter-spacing:.04em; color:var(--ink);
	position:relative; padding:.4em 0; transition:color .3s var(--ease);
}
.yy-menu a::after{ content:""; position:absolute; left:0; bottom:.1em; width:100%; height:1px; background:var(--emerald); transform:scaleX(0); transform-origin:left; transition:transform .35s var(--ease); }
.yy-menu a:hover{ color:var(--emerald); }
.yy-menu a:hover::after,.yy-menu .current-menu-item a::after{ transform:scaleX(1); }

.yy-header-actions{ display:flex; align-items:center; gap:1.1rem; }
.yy-cart{ position:relative; display:inline-flex; color:var(--ink); transition:color .3s var(--ease); }
.yy-cart:hover{ color:var(--emerald); }
.yy-cart-count{
	position:absolute; top:-8px; right:-10px; min-width:17px; height:17px; padding:0 4px;
	background:var(--emerald); color:var(--cream); border-radius:100px;
	font-size:.62rem; font-weight:700; display:flex; align-items:center; justify-content:center;
}
.yy-cart-count[data-count="0"]{ display:none; }

/* subtle separation only once scrolled (seamless over the hero otherwise) */
.yy-header.is-stuck{ border-bottom-color:var(--line); box-shadow:0 8px 30px -22px rgba(20,20,15,.25); }

.yy-burger{ display:none; background:none; border:0; width:34px; height:34px; padding:6px; }
.yy-burger span{ display:block; height:1.5px; background:var(--ink); margin:5px 0; transition:transform .35s var(--ease), opacity .35s var(--ease); }
.yy-burger[aria-expanded="true"] span:first-child{ transform:translateY(6.5px) rotate(45deg); }
.yy-burger[aria-expanded="true"] span:last-child{ transform:translateY(-6.5px) rotate(-45deg); }

@media(max-width:920px){
	.yy-shop-btn{ display:none; }
	.yy-burger{ display:block; order:-1; }
	.yy-logo{ margin-inline:auto; }
	.yy-nav{
		position:fixed; inset:0 0 0 auto; width:min(84vw,360px);
		background:var(--bg); border-left:1px solid var(--line);
		transform:translateX(100%); transition:transform .45s var(--ease);
		padding:6.5rem 2.2rem 2rem; margin:0; z-index:950; box-shadow:-30px 0 60px -40px rgba(0,0,0,.4);
	}
	.yy-nav.is-open{ transform:translateX(0); }
	.yy-menu{ flex-direction:column; gap:.2rem; }
	.yy-menu a{ font-size:1.35rem; font-family:var(--serif); font-weight:300; padding:.55em 0; display:block; border-bottom:1px solid var(--line); }
	.yy-menu a::after{ display:none; }
	body.yy-nav-open{ overflow:hidden; }
	.yy-nav-scrim{ position:fixed; inset:0; background:rgba(20,20,15,.35); opacity:0; visibility:hidden; transition:opacity .4s var(--ease); z-index:940; }
	.yy-nav-scrim.is-on{ opacity:1; visibility:visible; }
}

/* =========================================================================
   Reveal animation
   ========================================================================= */
/* Reveal is a progressive enhancement: hidden only when JS is present (html.js). */
.js .reveal{ opacity:0; transform:translateY(26px); transition:opacity .9s var(--ease), transform .9s var(--ease); }
.js .reveal.in{ opacity:1; transform:none; }
.js .reveal[data-d="1"]{ transition-delay:.08s; }
.js .reveal[data-d="2"]{ transition-delay:.16s; }
.js .reveal[data-d="3"]{ transition-delay:.24s; }
.js .reveal[data-d="4"]{ transition-delay:.32s; }
@media(prefers-reduced-motion:reduce){ .js .reveal{ opacity:1; transform:none; transition:none; } html{ scroll-behavior:auto; } }

/* =========================================================================
   HERO
   ========================================================================= */
.hero{ position:relative; min-height:82vh; display:flex; align-items:center;
	padding-top:clamp(1.5rem,3vw,2.75rem); padding-bottom:clamp(2.5rem,4vw,3.5rem); overflow:hidden; }
.hero-bg{ position:absolute; inset:0; z-index:-2; }
.hero-arc{ position:absolute; top:-30vh; right:-16vw; width:74vw; max-width:940px; aspect-ratio:1; border-radius:50%;
	background:radial-gradient(circle at 50% 50%, #E4EFE8 0%, rgba(223,235,227,.55) 40%, transparent 68%); }
.hero-grain{ position:absolute; inset:0; opacity:.4; mix-blend-mode:multiply; pointer-events:none;
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.45'/%3E%3C/svg%3E"); }

.hero-inner{ display:grid; grid-template-columns:1.04fr .82fr; gap:clamp(2rem,5vw,5.5rem); align-items:center; width:100%; }

.hero-masthead{ display:flex; align-items:center; gap:1.2rem; margin-bottom:clamp(1.3rem,2.4vw,2rem);
	font-size:.72rem; letter-spacing:.24em; text-transform:uppercase; color:var(--stone); font-weight:500; }
.hero-masthead .hero-rule{ flex:1; height:1px; background:var(--line-2); }

.hero-title{ font-family:var(--serif); font-weight:400; letter-spacing:-.014em; line-height:1.02;
	font-size:clamp(2.7rem,5.4vw,4.9rem); color:var(--ink); }
.hero-title span{ display:block; }
.hero-title em{ font-style:italic; font-weight:400; color:var(--emerald); }

.hero-lede{ margin:clamp(1.3rem,2.2vw,1.8rem) 0 0; max-width:29rem;
	font-size:clamp(1.02rem,1.3vw,1.18rem); line-height:1.58; color:var(--ink-soft); font-weight:300; }

.hero-actions{ display:flex; align-items:center; gap:1.7rem; margin-top:clamp(1.5rem,2.6vw,2.1rem); flex-wrap:wrap; }
.hero-textlink{ color:var(--ink); }

.hero-meta{ display:flex; align-items:baseline; gap:1.1rem; flex-wrap:wrap;
	margin-top:clamp(1.6rem,2.8vw,2.3rem); padding-top:1.3rem; border-top:1px solid var(--line); max-width:31rem; }
.hero-meta-k{ font-size:.68rem; letter-spacing:.2em; text-transform:uppercase; color:var(--stone); }
.hero-minerals{ font-family:var(--serif); font-style:italic; font-size:1.08rem; color:var(--ink); }
.hero-minerals i{ font-style:normal; color:var(--emerald); margin:0 .25em; }

/* figure — arched portrait */
.hero-figure{ position:relative; align-self:center; display:flex; justify-content:center; }
.hero-arch{ position:relative; margin:0; width:100%; max-width:430px; aspect-ratio:3/4.05;
	border-radius:220px 220px 8px 8px; overflow:hidden; box-shadow:0 60px 110px -55px rgba(23,32,25,.6); }
.hero-arch::after{ content:""; position:absolute; inset:0; border-radius:inherit; box-shadow:inset 0 0 0 1px rgba(255,255,255,.4); }
.hero-arch img{ width:100%; height:100%; object-fit:cover; }

.hero-index{ position:absolute; top:6px; right:-8px; writing-mode:vertical-rl;
	font-size:.66rem; letter-spacing:.24em; text-transform:uppercase; color:var(--stone); }

.hero-seal{ position:absolute; left:-34px; bottom:40px; width:116px; height:116px; border-radius:50%;
	background:var(--forest); color:var(--cream); display:flex; align-items:center; justify-content:center;
	box-shadow:0 26px 46px -20px rgba(23,32,25,.7); }
.hero-seal-ring{ position:absolute; inset:0; width:100%; height:100%; animation:yy-spin 26s linear infinite; }
.hero-seal-ring text{ font-family:var(--sans); font-size:8.4px; letter-spacing:2.3px; fill:var(--cream);
	text-transform:uppercase; font-weight:500; }
.hero-seal-c{ font-family:var(--serif); font-weight:400; font-size:1.55rem; line-height:1;
	display:flex; flex-direction:column; align-items:center; }
.hero-seal-c small{ font-family:var(--sans); font-size:.5rem; letter-spacing:.14em; text-transform:uppercase;
	margin-top:4px; color:rgba(244,239,230,.72); }
@keyframes yy-spin{ to{ transform:rotate(360deg); } }
@media(prefers-reduced-motion:reduce){ .hero-seal-ring{ animation:none; } }

.hero-scroll{ position:absolute; left:50%; bottom:1.4rem; transform:translateX(-50%);
	display:flex; flex-direction:column; align-items:center; gap:.7rem;
	font-size:.62rem; letter-spacing:.26em; text-transform:uppercase; color:var(--stone); }
.hero-scroll-line{ width:1px; height:38px; background:linear-gradient(var(--stone), transparent); animation:yy-scroll 2.4s var(--ease) infinite; transform-origin:top; }
@keyframes yy-scroll{ 0%,100%{ transform:scaleY(.3); opacity:.4; } 50%{ transform:scaleY(1); opacity:1; } }
@media(prefers-reduced-motion:reduce){ .hero-scroll-line{ animation:none; } }

@media(max-width:900px){
	.hero{ min-height:auto; padding-top:clamp(2.5rem,9vw,4rem); }
	.hero-inner{ grid-template-columns:1fr; gap:clamp(2rem,6vw,3rem); }
	.hero-figure{ order:-1; }
	.hero-arch{ max-width:300px; margin-inline:auto; }
	.hero-seal{ width:96px; height:96px; left:-18px; bottom:24px; }
	.hero-seal-c{ font-size:1.3rem; }
	.hero-scroll,.hero-index{ display:none; }
	.hero-masthead{ margin-bottom:1.2rem; }
}

/* =========================================================================
   Marquee / values band
   ========================================================================= */
.band-values{ border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--bg); }
.band-values .container{ display:flex; align-items:stretch; justify-content:space-between; flex-wrap:wrap; }
.value-item{ flex:1 1 200px; padding:clamp(1.8rem,3.4vw,2.8rem) 1.4rem; text-align:center; border-right:1px solid var(--line); }
.value-item:last-child{ border-right:0; }
.value-item .v-k{ font-family:var(--serif); font-size:2.4rem; font-weight:300; color:var(--emerald); display:block; line-height:1; margin-bottom:.5rem; }
.value-item .v-l{ font-size:.8rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft); }
@media(max-width:720px){ .value-item{ flex:1 1 50%; border-bottom:1px solid var(--line); } .value-item:nth-child(2n){ border-right:0; } }

/* =========================================================================
   Section scaffolding
   ========================================================================= */
.section{ padding-block:var(--sec-pad); }
.section--mint{ background:var(--mint); }
.section--bg2{ background:var(--bg-2); }
.sec-head{ max-width:44rem; margin:0 auto clamp(2.6rem,5vw,4rem); text-align:center; }
.sec-head.left{ margin-inline:0; text-align:left; }
.sec-head p{ color:var(--ink-soft); }

/* Intro / statement */
.statement{ text-align:center; }
.statement .big{
	font-family:var(--serif); font-weight:300; font-size:clamp(1.7rem,3.4vw,2.75rem);
	line-height:1.28; letter-spacing:-.02em; max-width:24ch; margin:0 auto; color:var(--ink);
}
.statement .big b{ font-weight:400; color:var(--emerald); font-style:italic; }
.statement .sig{ margin-top:2.2rem; font-size:.8rem; letter-spacing:.22em; text-transform:uppercase; color:var(--stone); }

/* =========================================================================
   Feature split (product)
   ========================================================================= */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,5rem); align-items:center; }
.split--rev .split-media{ order:2; }
.split-media{ position:relative; }
.split-media .ph{ border-radius:var(--radius-lg); overflow:hidden; aspect-ratio:1/1; box-shadow:0 40px 80px -55px rgba(23,32,25,.5); }
.split-media .ph img{ width:100%; height:100%; object-fit:cover; }
.split-copy{ max-width:34rem; }
.split-copy h2{ margin-bottom:1.4rem; }
.spec-list{ list-style:none; margin:2rem 0 2.4rem; padding:0; display:grid; gap:1.15rem; }
.spec-list li{ display:flex; gap:1rem; align-items:flex-start; }
.spec-list .ic{ flex:0 0 auto; width:30px; height:30px; border-radius:50%; border:1px solid var(--emerald); color:var(--emerald); display:flex; align-items:center; justify-content:center; margin-top:2px; }
.spec-list .tx b{ display:block; font-family:var(--serif); font-size:1.12rem; font-weight:400; margin-bottom:.15rem; }
.spec-list .tx span{ font-size:.94rem; color:var(--ink-soft); }
@media(max-width:820px){ .split{ grid-template-columns:1fr; } .split--rev .split-media{ order:0; } }

/* =========================================================================
   Ingredients
   ========================================================================= */
.ingredients{ }
.ing-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.1rem,2.4vw,1.8rem); }
.ing-card{
	background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg);
	padding:clamp(1.8rem,3vw,2.6rem); position:relative; overflow:hidden;
	transition:transform .5s var(--ease), box-shadow .5s var(--ease), border-color .5s var(--ease);
}
.ing-card:hover{ transform:translateY(-6px); box-shadow:0 34px 60px -44px rgba(23,32,25,.5); border-color:var(--mint-2); }
.ing-num{ font-family:var(--serif); font-size:.95rem; color:var(--emerald); letter-spacing:.05em; }
.ing-card h3{ font-size:1.6rem; margin:1.5rem 0 .2rem; font-weight:400; }
.ing-card .ing-sub{ font-size:.76rem; letter-spacing:.15em; text-transform:uppercase; color:var(--stone); margin-bottom:1rem; display:block; }
.ing-card p{ font-size:.95rem; color:var(--ink-soft); margin:0; }
.ing-leaf{ position:absolute; top:1.4rem; right:1.4rem; width:34px; height:34px; color:var(--mint-2); }
.ing-card:hover .ing-leaf{ color:var(--emerald); transition:color .5s var(--ease); }
@media(max-width:800px){ .ing-grid{ grid-template-columns:1fr; } }

/* =========================================================================
   Why different (pillars)
   ========================================================================= */
.pillars{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.6rem,3.2vw,3rem); }
.pillar{ text-align:left; }
.pillar .p-ic{ width:54px; height:54px; border-radius:50%; background:var(--mint); color:var(--emerald-deep); display:flex; align-items:center; justify-content:center; margin-bottom:1.5rem; }
.pillar h3{ font-size:1.45rem; margin-bottom:.7rem; font-weight:400; }
.pillar p{ font-size:.96rem; color:var(--ink-soft); margin:0; }
@media(max-width:800px){ .pillars{ grid-template-columns:1fr; gap:2.2rem; } }

/* =========================================================================
   Big image band / CTA
   ========================================================================= */
.imgband{ position:relative; min-height:clamp(420px,58vw,640px); display:flex; align-items:center; overflow:hidden; }
.imgband img.bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.imgband .scrim{ position:absolute; inset:0; background:linear-gradient(90deg, rgba(23,32,25,.66), rgba(23,32,25,.15) 62%, transparent); z-index:1; }
.imgband .container{ position:relative; z-index:2; }
.imgband .ib-copy{ max-width:34rem; color:var(--cream); }
.imgband .ib-copy .eyebrow{ color:#8fd9bf; }
.imgband .ib-copy .eyebrow::before{ background:#8fd9bf; }
.imgband h2{ color:var(--cream); font-size:clamp(2rem,4vw,3.2rem); font-weight:300; margin-bottom:1.2rem; }
.imgband p{ color:rgba(244,239,230,.86); margin-bottom:2rem; }

/* CTA panel */
.cta-panel{ text-align:center; }
.cta-panel .box{
	background:var(--forest); color:var(--cream); border-radius:var(--radius-lg);
	padding:clamp(2.8rem,6vw,5rem) clamp(1.5rem,5vw,4rem); position:relative; overflow:hidden;
}
.cta-panel .box::after{ content:""; position:absolute; width:44%; aspect-ratio:1; right:-8%; top:-30%; border-radius:50%; background:radial-gradient(circle, rgba(27,158,119,.35), transparent 66%); }
.cta-panel h2{ color:var(--cream); font-size:clamp(2rem,4.4vw,3.3rem); font-weight:300; margin-bottom:1rem; position:relative; }
.cta-panel p{ color:rgba(244,239,230,.82); max-width:34rem; margin:0 auto 2.2rem; position:relative; }
.cta-panel .btn{ position:relative; }

/* =========================================================================
   Testimonial / quote
   ========================================================================= */
.quote{ text-align:center; }
.quote blockquote{
	font-family:var(--serif); font-weight:300; font-size:clamp(1.5rem,3vw,2.4rem);
	line-height:1.35; letter-spacing:-.02em; max-width:24ch; margin:0 auto 1.6rem; color:var(--ink);
}
.quote .q-mark{ font-family:var(--serif); font-size:3.5rem; color:var(--emerald); line-height:.4; display:block; margin-bottom:1rem; }
.quote cite{ font-style:normal; font-size:.8rem; letter-spacing:.16em; text-transform:uppercase; color:var(--stone); }

/* =========================================================================
   FAQ
   ========================================================================= */
.faq-wrap{ display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(2rem,5vw,4.5rem); align-items:start; }
.faq-head{ position:sticky; top:110px; }
.faq-head h2{ margin:0 0 1rem; }
.faq-list{ display:flex; flex-direction:column; }
.faq-item{ border-top:1px solid var(--line-2); }
.faq-item:last-child{ border-bottom:1px solid var(--line-2); }
.faq-item summary{ list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:1.5rem;
	padding:1.5rem 0; font-family:var(--serif); font-size:clamp(1.1rem,1.7vw,1.35rem); font-weight:400; color:var(--ink); }
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary:hover{ color:var(--emerald-deep); }
.faq-ic{ position:relative; flex:0 0 auto; width:20px; height:20px; }
.faq-ic::before,.faq-ic::after{ content:""; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
	background:var(--emerald); transition:transform .35s var(--ease); }
.faq-ic::before{ width:15px; height:1.5px; }
.faq-ic::after{ width:1.5px; height:15px; }
.faq-item[open] .faq-ic::after{ transform:translate(-50%,-50%) scaleY(0); }
.faq-a{ overflow:hidden; }
.faq-a p{ margin:0; padding:0 0 1.6rem; color:var(--ink-soft); font-size:1rem; line-height:1.7; max-width:44rem; }
.faq-item[open] summary ~ .faq-a{ animation:yy-faq .5s var(--ease); }
@keyframes yy-faq{ from{ opacity:0; transform:translateY(-6px); } to{ opacity:1; transform:none; } }
@media(max-width:820px){ .faq-wrap{ grid-template-columns:1fr; gap:1.6rem; } .faq-head{ position:static; } }

/* =========================================================================
   Page hero (interior)
   ========================================================================= */
.page-hero{ padding-top:clamp(4.5rem,8vw,7rem); padding-bottom:clamp(2.6rem,5vw,4rem); text-align:center; }
.page-hero .display{ font-size:clamp(2.4rem,5.4vw,4.4rem); }
.page-hero p{ max-width:40rem; margin:1.4rem auto 0; color:var(--ink-soft); }
.prose{ max-width:44rem; margin-inline:auto; }
.prose h2{ font-size:clamp(1.7rem,3vw,2.3rem); font-weight:300; margin:2.4em 0 .7em; }
.prose h3{ font-size:1.3rem; font-weight:500; font-family:var(--sans); margin:2em 0 .5em; letter-spacing:0; }
.prose p{ color:var(--ink-soft); }
.prose p:first-of-type{ font-size:1.18rem; color:var(--ink); }

/* stat row */
.stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1rem,2.4vw,2rem); margin:0 auto; max-width:60rem; }
.stat{ text-align:center; border:1px solid var(--line); border-radius:var(--radius-lg); padding:clamp(1.6rem,3vw,2.4rem) 1rem; background:var(--white); }
.stat .k{ font-family:var(--serif); font-size:clamp(2.2rem,4vw,3rem); font-weight:300; color:var(--emerald); line-height:1; }
.stat .l{ font-size:.82rem; color:var(--ink-soft); margin-top:.6rem; display:block; }
@media(max-width:700px){ .stats{ grid-template-columns:1fr; } }

/* =========================================================================
   Contact
   ========================================================================= */
.contact-grid{ display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(2rem,5vw,4.5rem); align-items:start; }
.contact-info h3{ font-family:var(--sans); font-size:.8rem; letter-spacing:.16em; text-transform:uppercase; color:var(--stone); margin:0 0 .4rem; font-weight:600; }
.contact-info .ci-block{ margin-bottom:2rem; }
.contact-info .ci-block p{ font-size:1.05rem; color:var(--ink); margin:0; }
.contact-info a{ color:var(--emerald); }
.yy-form{ display:grid; gap:1.1rem; }
.yy-form .row{ display:grid; grid-template-columns:1fr 1fr; gap:1.1rem; }
.yy-form label{ display:block; font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; color:var(--stone); margin-bottom:.5rem; font-weight:600; }
.yy-form input,.yy-form textarea{
	width:100%; background:var(--white); border:1px solid var(--line-2); border-radius:var(--radius);
	padding:.95em 1.1em; font-family:var(--sans); font-size:1rem; color:var(--ink); transition:border-color .3s var(--ease), box-shadow .3s var(--ease);
}
.yy-form input:focus,.yy-form textarea:focus{ outline:none; border-color:var(--emerald); box-shadow:0 0 0 3px rgba(27,158,119,.12); }
.yy-form textarea{ min-height:150px; resize:vertical; }
.yy-note{ padding:1rem 1.2rem; border-radius:var(--radius); font-size:.95rem; }
.yy-note.ok{ background:var(--mint); color:var(--emerald-deep); border:1px solid var(--mint-2); }
.yy-note.err{ background:#FBEDE9; color:#9A3B22; border:1px solid #F1D3C9; }
@media(max-width:760px){ .contact-grid{ grid-template-columns:1fr; } .yy-form .row{ grid-template-columns:1fr; } }

/* =========================================================================
   Footer
   ========================================================================= */
.yy-footer{ background:var(--forest); color:var(--cream); padding-top:clamp(3.5rem,7vw,6rem); }
.yy-footer-top{ display:grid; grid-template-columns:1.3fr 2fr; gap:clamp(2rem,5vw,4rem); padding-bottom:3rem; border-bottom:1px solid rgba(244,239,230,.14); }
.yy-footer-logo{ width:170px; margin-bottom:1.6rem; }
.yy-footer-tag{ font-family:var(--serif); font-weight:300; font-size:1.25rem; line-height:1.4; color:var(--cream); margin-bottom:1.2rem; }
.yy-footer-mini{ font-size:.76rem; letter-spacing:.08em; color:rgba(244,239,230,.6); text-transform:uppercase; margin:0; }
.yy-footer-local{ margin:1.3rem 0 0; font-size:.9rem; line-height:1.6; color:rgba(244,239,230,.72); }
.yy-footer-local strong{ color:var(--cream); font-weight:600; }
.yy-footer-local a{ color:#8fd9bf; }
.yy-footer-local a:hover{ color:var(--cream); }
.yy-footer-nav{ display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; }
.yy-fcol h4{ font-family:var(--sans); font-size:.74rem; letter-spacing:.18em; text-transform:uppercase; color:#8fd9bf; margin:0 0 1.2rem; font-weight:600; }
.yy-fcol ul{ list-style:none; margin:0; padding:0; display:grid; gap:.7rem; }
.yy-fcol a{ font-size:.95rem; color:rgba(244,239,230,.82); transition:color .3s var(--ease); }
.yy-fcol a:hover{ color:var(--cream); }
.yy-fcol--news p{ font-size:.92rem; color:rgba(244,239,230,.72); margin-bottom:1.1rem; }
.yy-news{ display:flex; border:1px solid rgba(244,239,230,.28); border-radius:100px; overflow:hidden; }
.yy-news input{ flex:1; background:transparent; border:0; padding:.8em 1.1em; color:var(--cream); font-family:var(--sans); font-size:.9rem; }
.yy-news input::placeholder{ color:rgba(244,239,230,.5); }
.yy-news input:focus{ outline:none; }
.yy-news button{ background:var(--emerald); color:var(--cream); border:0; padding:0 1.1em; display:flex; align-items:center; transition:background .3s var(--ease); }
.yy-news button:hover{ background:var(--emerald-d); }
.yy-footer-bottom{ display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1.8rem 0; flex-wrap:wrap; }
.yy-footer-bottom p{ margin:0; font-size:.8rem; color:rgba(244,239,230,.6); }
.yy-reg{ font-size:.6em; vertical-align:super; }
@media(max-width:820px){ .yy-footer-top{ grid-template-columns:1fr; } .yy-footer-nav{ grid-template-columns:1fr 1fr; } }
@media(max-width:520px){ .yy-footer-nav{ grid-template-columns:1fr; } }

/* =========================================================================
   WooCommerce restyle
   ========================================================================= */
.yy-shop{ padding-block:clamp(2.5rem,5vw,4.5rem) var(--sec-pad); }
.woocommerce-breadcrumb{ font-size:.78rem; letter-spacing:.06em; color:var(--stone); text-transform:uppercase; margin-bottom:2rem; }
.woocommerce-breadcrumb a{ color:var(--stone); }
.woocommerce-breadcrumb a:hover{ color:var(--emerald); }

/* single product layout */
.woocommerce div.product{ display:grid; grid-template-columns:1.05fr 1fr; gap:clamp(2rem,5vw,4.5rem); align-items:start; }
.woocommerce div.product .woocommerce-product-gallery{ width:100%!important; float:none; margin:0; position:sticky; top:110px; }
.woocommerce div.product .woocommerce-product-gallery__image{ border-radius:var(--radius-lg); overflow:hidden; border:1px solid var(--line); background:var(--white); }
.woocommerce div.product div.summary{ width:100%!important; float:none; margin:0; }
.woocommerce div.product .product_title{ font-size:clamp(2rem,3.6vw,3rem); font-weight:300; letter-spacing:-.02em; margin:.2rem 0 1rem; }
.woocommerce div.product p.price,.woocommerce div.product span.price{ color:var(--ink); font-size:1.6rem; font-family:var(--serif); font-weight:400; margin-bottom:1.4rem; }
.woocommerce div.product p.price ins{ text-decoration:none; }
.woocommerce div.product .woocommerce-product-details__short-description{ color:var(--ink-soft); font-size:1.05rem; }
.yy-powered{ font-size:.86rem; letter-spacing:.02em; color:var(--emerald-deep); background:var(--mint); display:inline-block; padding:.5em 1em; border-radius:100px; margin:.4rem 0 1.4rem; }

.woocommerce div.product form.cart{ margin:1.6rem 0; display:flex; gap:1rem; align-items:stretch; flex-wrap:wrap; }
.woocommerce div.product form.cart .quantity{ display:flex; }
.woocommerce .quantity input.qty{
	width:74px; text-align:center; border:1px solid var(--line-2); border-radius:100px; padding:.9em .6em;
	font-family:var(--sans); font-size:1rem; background:var(--white);
}
.woocommerce div.product form.cart .button,
.woocommerce a.button.alt,.woocommerce button.button.alt,.woocommerce #respond input#submit.alt{
	background:var(--emerald); color:var(--cream); border-radius:100px; padding:1em 2.4em;
	font-family:var(--sans); font-weight:600; font-size:.95rem; letter-spacing:.02em; border:1px solid var(--emerald);
	transition:background .35s var(--ease), transform .35s var(--ease); text-transform:none;
}
.woocommerce div.product form.cart .button:hover,
.woocommerce a.button.alt:hover,.woocommerce button.button.alt:hover{ background:var(--emerald-d); transform:translateY(-2px); }
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button{
	background:transparent; color:var(--ink); border:1px solid var(--line-2); border-radius:100px;
	padding:.9em 1.8em; font-family:var(--sans); font-weight:600; font-size:.9rem; text-transform:none;
	transition:background .3s var(--ease), color .3s var(--ease);
}
.woocommerce a.button:hover,.woocommerce button.button:hover{ background:var(--ink); color:var(--cream); border-color:var(--ink); }

/* trust badges */
.yy-trust{ list-style:none; margin:1.8rem 0 0; padding:1.8rem 0 0; border-top:1px solid var(--line); display:grid; grid-template-columns:1fr 1fr; gap:1.1rem 1.4rem; }
.yy-trust li{ display:flex; gap:.75rem; align-items:flex-start; }
.yy-trust-mark{ flex:0 0 auto; width:22px; height:22px; border-radius:50%; background:var(--mint); position:relative; margin-top:2px; }
.yy-trust-mark::after{ content:""; position:absolute; left:7px; top:5px; width:5px; height:9px; border:solid var(--emerald); border-width:0 2px 2px 0; transform:rotate(45deg); }
.yy-trust-t strong{ display:block; font-family:var(--serif); font-size:1.02rem; font-weight:400; }
.yy-trust-t em{ font-style:normal; font-size:.82rem; color:var(--ink-soft); }

/* tabs */
.woocommerce div.product .woocommerce-tabs{ grid-column:1/-1; margin-top:clamp(2.5rem,5vw,4rem); }
.woocommerce div.product .woocommerce-tabs ul.tabs{ padding:0; margin:0 0 2rem; border-bottom:1px solid var(--line); display:flex; gap:.4rem; flex-wrap:wrap; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before{ border:0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li{ background:transparent; border:0; border-radius:0; margin:0; padding:0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after{ display:none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a{
	padding:.9em 1.3em; font-family:var(--sans); font-weight:600; font-size:.86rem; color:var(--stone);
	border-bottom:2px solid transparent; letter-spacing:.03em;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover{ color:var(--ink); border-bottom-color:var(--emerald); }
.woocommerce div.product .woocommerce-tabs .panel{ color:var(--ink-soft); max-width:52rem; }
.woocommerce div.product .woocommerce-tabs .panel h2{ font-size:1.6rem; font-weight:300; }

.woocommerce-message,.woocommerce-info,.woocommerce-error{
	border-top-color:var(--emerald); background:var(--mint); border-radius:var(--radius); padding:1em 1.4em 1em 3.2em; color:var(--ink);
}
.woocommerce-message::before,.woocommerce-info::before{ color:var(--emerald); }
.woocommerce .star-rating span{ color:var(--emerald); }

/* shop archive grid */
.woocommerce ul.products{ display:grid!important; grid-template-columns:repeat(3,1fr); gap:clamp(1.2rem,2.6vw,2rem); margin:0; }
.woocommerce ul.products li.product{ width:auto!important; margin:0!important; float:none!important; text-align:left; background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg); padding:1rem 1rem 1.6rem; transition:transform .4s var(--ease), box-shadow .4s var(--ease); }
.woocommerce ul.products li.product:hover{ transform:translateY(-5px); box-shadow:0 30px 55px -42px rgba(23,32,25,.5); }
.woocommerce ul.products li.product img{ border-radius:var(--radius); margin-bottom:1.1rem; }
.woocommerce ul.products li.product .woocommerce-loop-product__title{ font-family:var(--serif); font-size:1.3rem; font-weight:400; padding:0 .4rem; }
.woocommerce ul.products li.product .price{ color:var(--ink)!important; font-family:var(--serif); padding:0 .4rem; }
.woocommerce ul.products li.product .button{ margin:.8rem .4rem 0; }
@media(max-width:900px){ .woocommerce ul.products{ grid-template-columns:1fr 1fr; } }
@media(max-width:820px){ .woocommerce div.product{ grid-template-columns:1fr; } .woocommerce div.product .woocommerce-product-gallery{ position:static; } .yy-trust{ grid-template-columns:1fr; } }
@media(max-width:560px){ .woocommerce ul.products{ grid-template-columns:1fr; } }

/* cart & checkout polish */
.woocommerce-cart .yy-shop, .woocommerce-checkout .yy-shop{ max-width:var(--container); }
.woocommerce table.shop_table{ border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; }
.woocommerce table.shop_table th{ font-family:var(--sans); font-weight:600; font-size:.8rem; letter-spacing:.06em; text-transform:uppercase; color:var(--ink); }
.woocommerce .cart-collaterals .cart_totals h2,.woocommerce-checkout h3{ font-family:var(--serif); font-weight:300; }
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,.select2-container .select2-selection{
	border:1px solid var(--line-2)!important; border-radius:var(--radius)!important; padding:.85em 1em!important; font-family:var(--sans)!important;
}
.woocommerce #payment,.woocommerce-checkout #payment{ background:var(--white); border-radius:var(--radius-lg); border:1px solid var(--line); }
/* classic checkout payment methods */
.woocommerce-checkout #payment ul.payment_methods{ border-bottom:1px solid var(--line); padding:1.4rem; }
.woocommerce-checkout #payment ul.payment_methods li{ font-family:var(--sans); margin:0 0 .3rem; }
.woocommerce-checkout #payment ul.payment_methods li label{ font-weight:600; color:var(--ink); }
.woocommerce-checkout #payment ul.payment_methods li input[type=radio]{ accent-color:var(--emerald); }
.woocommerce-checkout #payment div.payment_box{ background:var(--mint); color:var(--ink-soft); font-size:.92rem; line-height:1.6; border-radius:var(--radius); }
.woocommerce-checkout #payment div.payment_box::before{ border:1em solid var(--mint); border-right-color:transparent; border-left-color:transparent; border-top-color:transparent; }
.woocommerce-checkout #payment div.place-order{ padding:1.4rem; }
.woocommerce-checkout #payment .wc_payment_method > label::before{ } /* keep default radio */
h1.entry-title,.woocommerce-products-header__title{ font-size:clamp(2.2rem,4.4vw,3.4rem); font-weight:300; text-align:center; margin-bottom:.6rem; }
.woocommerce-products-header{ text-align:center; margin-bottom:2.5rem; }

/* WooCommerce Blocks (cart & checkout) — align to brand */
.wc-block-components-button.contained,
.wp-block-woocommerce-cart .wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button{
	background:var(--emerald)!important; color:var(--cream)!important;
	border-radius:100px!important; font-family:var(--sans)!important; font-weight:600!important;
	padding:1.05em 2.2em!important; transition:background .35s var(--ease), transform .35s var(--ease)!important;
}
.wc-block-components-button.contained:hover,
.wp-block-woocommerce-cart .wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover{ background:var(--emerald-d)!important; transform:translateY(-2px); }
.wc-block-components-totals-item__value,
.wc-block-components-order-summary-item__total-price{ color:var(--ink); }
.wc-block-checkout__actions .wc-block-components-checkout-step__description,
.wc-block-components-form .wc-block-components-text-input.is-active label,
.wc-block-components-radio-control__option--checked{ }
.wc-block-components-text-input input:focus,
.wc-block-components-address-form input:focus,
.wc-block-components-select select:focus{ box-shadow:0 0 0 2px var(--emerald)!important; }
.wc-block-components-checkbox__mark,
.wc-block-components-radio-control__input:checked{ color:var(--emerald)!important; }
.is-large.wc-block-checkout .wc-block-components-checkout-step__title,
.wc-block-components-title{ font-family:var(--serif)!important; font-weight:400!important; }
.wc-block-components-product-price,.wc-block-components-formatted-money-amount{ color:var(--ink); }
a.wc-block-components-totals-coupon-link,.wc-block-components-panel__button{ color:var(--emerald)!important; }

/* generic entry */
.entry-page{ padding-block:var(--sec-pad); }
