/* ==========================================================
   ARTISTRY BY GS — SHARED STYLESHEET
   ==========================================================
   Palette: warm mocha background, ivory/cream text, gold accents.
   Fonts:
     - Playfair Display  -> headings, "GS" in the logo
     - Alex Brush         -> "Artistry by" in the logo (cursive)
     - Cormorant Garamond  -> italic quotes / eyebrows
     - Jost                -> body copy, nav, buttons, forms

   FILE MAP (search for these markers to jump around):
     1. Variables & base reset
     2. Typography
     3. Nav / header
     4. Buttons
     5. Scroll-reveal animation
     6. Hero (shared by ALL pages — same height everywhere)
     7. Hero split layout (home page only: text left / photo right)
     8. Homepage marquee carousel ("Recent Looks" strip)
     9. Large portfolio carousel (3-4 big slides)
    10. Instagram feed preview grid
    11. Sections / bands / dividers
    12. Services grid
    13. About page (photo frame, stats, pull-quote, Amazon box)
    14. Testimonials
    15. FAQ accordion
    16. Social CTA band
    17. Contact page (availability strip, form, split layout)
    18. Footer
    19. Responsive overrides
   ========================================================== */


/* ===== 1. VARIABLES & BASE RESET ===== */
:root{
  --mocha:#9B7B6C;
  --mocha-deep:#6B4E42;
  --espresso:#3F2A22;
  --ivory:#FFFBF3;
  --cream-soft:#F3E7DC;
  --gold:#C9A66B;
  --gold-soft:#E4CDA0;
  --blush:#E8CFC2;
  --max-w:1240px;
  --section-pad: clamp(64px, 10vw, 140px);
  /* Unified hero height — matches what was previously only on interior pages.
     Change this ONE value to resize the hero on every page at once. */
  --hero-height: 56vh;
  /* Fixed height of the solid header bar (1 inch), used both for the
     header itself and as top padding on <body> so content clears it. */
  --nav-height: 1in;
}

*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Jost', sans-serif;
  font-weight:500;
  color: var(--cream-soft);
  background: var(--mocha);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  padding-top: var(--nav-height);
}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
ul{list-style:none;}
:focus-visible{outline:2px solid var(--gold); outline-offset:3px;}


/* ===== 2. TYPOGRAPHY ===== */
h1,h2,h3,.display{
  font-family:'Playfair Display', serif;
  color: var(--ivory);
  font-weight:700;
  line-height:1.08;
  letter-spacing:0.01em;
}
.italic-serif{
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-weight:500;
}
.eyebrow{
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  color: var(--gold);
  font-size: clamp(1.1rem, 1.6vw, 1.4rem);
  letter-spacing:0.04em;
}

.container{max-width: var(--max-w); margin:0 auto; padding:0 clamp(20px, 5vw, 60px);}
.wide{max-width:1400px; margin:0 auto; padding:0 clamp(20px, 5vw, 60px);}


/* ===== 3. NAV / HEADER =====
   Always-solid 1in-tall bar (not transparent) so header text stays
   readable over any hero image, at any scroll position. Since the
   nav is fixed, --nav-height is also used as top padding on <body>
   so page content (including hero images) starts below the bar
   instead of hiding behind it. */
header.site-nav{
  position:fixed; top:0; left:0; right:0; z-index:100;
  height: var(--nav-height);
  display:flex; align-items:center;
  background: var(--espresso);
  transition: box-shadow 0.3s ease;
}
header.site-nav.scrolled{
  box-shadow: 0 4px 24px rgba(0,0,0,0.25);
}
.nav-inner{width:100%; display:flex; align-items:center; justify-content:space-between; max-width: var(--max-w); margin:0 auto; padding: 0 clamp(20px,5vw,60px);}

/* Logo: "GS" stays bold Playfair Display gold. "Artistry by" is now cursive
   (Alex Brush) via the .logo-script span — swap the font-family below if a
   different option from the comparison preview is preferred later. */
.logo{
  font-family:'Playfair Display', serif; font-weight:700;
  font-size: 1.2rem; /* slightly smaller than before, per request */
  color: var(--ivory); letter-spacing:0.03em;
  display:inline-flex; align-items:baseline; gap:6px;
}
.logo-script{
  font-family:'Alex Brush', cursive;
  font-weight:400;
  font-size: 1.55em; /* Alex Brush reads small at equal font-size, scaled up to match visual weight */
  color: var(--ivory);
  line-height:1;
}
.logo span{color:var(--gold);}

nav.links{display:flex; gap: clamp(16px, 2.6vw, 34px); align-items:center;}
nav.links a{font-size:0.8rem; text-transform:uppercase; letter-spacing:0.1em; color: var(--cream-soft); position:relative; padding-bottom:4px;}
nav.links a.current{color:var(--gold-soft);}
nav.links a::after{content:''; position:absolute; left:0; bottom:0; height:1px; width:0; background:var(--gold); transition:width 0.3s ease;}
nav.links a:hover::after, nav.links a.current::after{width:100%;}
.nav-cta{border:1px solid var(--gold); padding:9px 20px; border-radius:2px; font-size:0.76rem; text-transform:uppercase; letter-spacing:0.1em; color:var(--ivory) !important; transition: all 0.3s ease;}
.nav-cta:hover{background:var(--gold); color:var(--espresso) !important;}
.nav-cta::after{display:none;}
.menu-toggle{display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; z-index:110;}
.menu-toggle span{width:26px; height:1.5px; background:var(--ivory); display:block;}

@media (max-width: 900px){
  nav.links{position:fixed; inset:0; background:var(--espresso); flex-direction:column; justify-content:center; align-items:center; gap:32px; transform: translateX(100%); transition: transform 0.4s ease;}
  nav.links.open{transform: translateX(0);}
  nav.links a{font-size:1rem;}
  .menu-toggle{display:flex;}
}


/* ===== 4. BUTTONS ===== */
.btn{display:inline-block; font-family:'Jost', sans-serif; font-size:0.8rem; text-transform:uppercase; letter-spacing:0.14em; padding:16px 38px; border:1px solid var(--gold); color:var(--ivory); border-radius:2px; transition: all 0.35s ease;}
.btn:hover{background:var(--gold); color:var(--espresso); letter-spacing:0.16em;}
.btn.filled{background:var(--gold); color:var(--espresso);}
.btn.filled:hover{background:var(--gold-soft); border-color:var(--gold-soft);}
.btn.outline-dark{border-color:var(--espresso); color:var(--espresso);}
.btn.outline-dark:hover{background:var(--espresso); color:var(--ivory);}


/* ===== 5. SCROLL-REVEAL ===== */
.reveal{opacity:0; transform:translateY(28px); transition: opacity 0.9s ease, transform 0.9s ease;}
.reveal.visible{opacity:1; transform:translateY(0);}


/* ===== 6. HERO — shared by every page, same height everywhere =====
   All four pages use this exact same block: desert illustration
   background, brown gradient tint at 90% image opacity, --hero-height
   controls the height globally (see variable at the top of this file). */
.hero{
  position:relative;
  min-height: var(--hero-height);
  display:flex; align-items:center; justify-content:center;
  padding: 50px clamp(20px,5vw,60px) 60px;
  overflow:hidden;
}
.hero-bg-img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2;
  filter: saturate(0.9); opacity:0.9;
}
.hero::after{
  content:''; position:absolute; inset:0; z-index:-1;
  background: linear-gradient(180deg, rgba(63,42,34,0.35) 0%, rgba(63,42,34,0.15) 40%, rgba(63,42,34,0.85) 100%);
}
/* Centered content pattern — used on About / Portfolio / Contact */
.hero-content{max-width: 680px; text-align:center; position:relative; z-index:2;}
/* Per feedback: gold/yellow is hard to read over the busy hero photo,
   so hero eyebrows use ivory instead (gold is still used everywhere
   else — section eyebrows, accents — where it sits on a flat mocha
   background and reads fine). */
.hero .eyebrow{display:block; margin-bottom:16px; color: var(--ivory); font-weight:600;}
.hero h1{font-size: clamp(2.2rem, 5vw, 3.4rem);}
.hero p.sub{
  font-family:'Cormorant Garamond', serif; font-style:italic; font-weight:600;
  font-size: clamp(1.5rem, 1.8vw, 1.3rem); color: var(--ivory);
  max-width:560px; margin: 16px auto 0; line-height:1.5;
}


/* ===== 7. HERO SPLIT LAYOUT — homepage only =====
   A true 1x2 grid, centered as a block on the page (not stretched
   edge-to-edge) — text left, framed photo right. Falls back to
   stacked (photo above text) on narrow screens — see responsive
   section. */
.hero-split .hero-content{
  max-width: 1000px; margin: 0 auto; width:100%; text-align:left;
  display:grid; grid-template-columns: 1fr 1fr; align-items:center;
  gap: clamp(30px, 5vw, 70px);
}
.hero-split .hero-text{flex: 1 1 480px; max-width:560px;}
.hero-split .hero-text p.sub{margin: 16px 0 0;}
.hero-split .hero-photo{
  flex: 0 0 auto; width: clamp(300px, 36vw, 500px);
  border:1px solid var(--gold); padding:10px;
  position:relative;
}
.hero-split .hero-photo::before{
  content:''; position:absolute; top:-10px; left:-10px; right:10px; bottom:10px;
  border:1px solid var(--gold); z-index:-1;
}
.hero-split .hero-photo img{width:100%; height:clamp(400px, 45vw, 620px); object-fit:cover; object-position:50% 20%;}

/* Portfolio hero variant: cream "mat" box instead of the gold-line
   frame, fixed 3:5 ratio, and a larger Instagram line + bordered
   Book Now button in place of the usual eyebrow/h1/sub stack. */
.hero-portfolio .hero-photo{
  border:none; background: var(--mocha-deep); padding:12px;
  width: clamp(240px, 28vw, 340px);
}
.hero-portfolio .hero-photo::before{display:none;}
.hero-portfolio .hero-photo img{width:100%; aspect-ratio:3/5; height:auto; object-fit:cover; object-position:50% 25%;}
.hero-portfolio .ig-line{
  font-family:'Cormorant Garamond', serif; font-style:italic; font-weight:600;
  font-size: clamp(1.3rem, 2.2vw, 1.65rem); color:var(--ivory); line-height:1.6;
  margin-top:18px; max-width:480px;
}
.hero-portfolio .ig-line a{text-decoration:underline; color:var(--gold-soft);}
.hero-portfolio .book-now-outline{margin-top:30px;}


/* ===== 8. HOMEPAGE MARQUEE CAROUSEL ("Recent Looks") =====
   HOW TO ADD / REMOVE / REORDER IMAGES:
   Open index.html, find <div class="carousel-track" id="marqueeTrack">.
   Each photo is one <div class="slide"><img ...></div>. To add a new
   photo, copy one of those lines and change the src + alt text — the
   JS in script.js automatically detects how many slides exist and
   duplicates them as many times as needed to fill the row and loop
   seamlessly, at any screen size. You never need to touch the CSS or
   JS when adding/removing photos, only the HTML list.

   Images should be roughly a 3:5 (width:height) crop for a consistent
   row — see the "images/look-XX-crop35.jpg" files for the pre-cropped
   set already in use. */
.carousel-section{padding: var(--section-pad) 0; text-align:center;}
.carousel-wrap{position:relative; width:100%; margin: 46px auto 0; overflow:hidden;}
.carousel-wrap::before, .carousel-wrap::after{
  content:''; position:absolute; top:0; bottom:0; width:80px; z-index:3; pointer-events:none;
}
.carousel-wrap::before{left:0; background:linear-gradient(90deg, var(--mocha) 0%, rgba(155,123,108,0) 100%);}
.carousel-wrap::after{right:0; background:linear-gradient(270deg, var(--mocha) 0%, rgba(155,123,108,0) 100%);}
.carousel-track{
  display:flex; gap:10px;
  height:3in;
  width:max-content;
  /* No CSS animation here anymore — direction/speed is driven by
     JS (script.js) via requestAnimationFrame, so hovering the left
     or right edge of the strip can reverse or resume direction.
     See the big comment above the marquee code in script.js. */
}
.carousel-track .slide{flex:0 0 auto; height:100%;}
/* 3:5 aspect ratio, center-cropped via object-fit so every image lines
   up cleanly regardless of its original crop. */
.carousel-track .slide img{
  height:100%; width:calc(3in * 0.6); /* 3:5 ratio at the 3in height above */
  object-fit:cover; object-position:center; border-radius:2px;
}


/* ===== 9. LARGE PORTFOLIO CAROUSEL =====
   This reuses the exact same marquee mechanic as the homepage
   "Recent Looks" strip (see section 8, and script.js — it works
   generically on any .carousel-wrap element, including direction
   changing on hover). The only difference is size: add
   class="carousel-wrap large" and each photo renders much bigger.

   Sized via the --large-w custom property below, computed so
   exactly 4 photos + their 3 gaps always add up to the full width
   of the page (100vw), at any screen size. Change the "4" in the
   calc, or --large-gap, to show a different count/spacing.

   No edge fade on this one — images run flush to both edges of the
   page (the homepage strip keeps its fade; this override only
   applies to .large).

   HOW TO ADD/REMOVE PHOTOS: same as the homepage strip — copy a
   <div class="slide"><img ...></div> line inside the matching
   .carousel-track in portfolio.html. */
.carousel-wrap.large{
  --large-gap: 5px;
  --large-w: calc((100vw - (3 * var(--large-gap))) / 4); /* 4 photos, 3 gaps, full width */
  width:100%; margin: 46px auto 0;
}
.carousel-wrap.large::before,
.carousel-wrap.large::after{
  content:none; /* removes the edge fade for this carousel only */
}
.carousel-wrap.large .carousel-track{height: calc(var(--large-w) * 5 / 3); gap: var(--large-gap);}
.carousel-wrap.large .carousel-track .slide img{
  height:100%; width: var(--large-w);
  object-fit:cover; object-position:center; border-radius:2px;
}
@media (max-width:900px){
  .carousel-wrap.large{--large-w: calc((100vw - var(--large-gap)) / 2);} /* 2 photos on smaller screens */
}


/* ===== 10. INSTAGRAM FEED PREVIEW GRID =====
   Currently placeholder tiles linking to the profile. Once specific
   post URLs are provided, update each <a href="..."> in the
   "instagram-feed" section of portfolio.html to link straight to
   that post instead of the profile homepage. */
.insta-feed{padding: var(--section-pad) 0; text-align:center;}
.insta-feed h2{font-size:clamp(1.5rem,2.8vw,2rem); margin-bottom:8px;}
.insta-feed h2 a:hover{color:var(--gold-soft);}
.insta-feed .handle-line{font-family:'Cormorant Garamond', serif; font-style:italic; color:var(--gold-soft); font-size:1.1rem; margin-bottom:36px;}
/* 4:5 is the aspect ratio Instagram itself uses for feed preview
   images, at a fixed 3in tall — flex-wrap so tiles stay this shape
   and simply wrap to new rows on narrower screens, rather than
   being squeezed into a fixed column count. */
.insta-grid{display:flex; flex-wrap:wrap; justify-content:center; gap:5px;}
.insta-grid a{height:4in; width:calc(4in * 3 / 5); aspect-ratio:3/5; overflow:hidden; display:block; position:relative;}
.insta-grid img{width:100%; height:100%; object-fit:cover; transition:transform 0.6s ease, opacity 0.3s ease;}
.insta-grid a:hover img{transform:scale(1.08); opacity:0.85;}
@media (max-width:3000px){.insta-grid a{height:4in; width:calc(4in * 3 / 5);}}


/* ===== 11. SECTIONS / BANDS / DIVIDERS ===== */
.arch-divider{width:100%; display:flex; justify-content:center; margin: 10px 0 28px; opacity:0.9;}
.arch-divider svg{width: min(220px, 60vw); height:auto;}
.arch-divider.on-deep path, .arch-divider.on-deep circle{stroke:var(--gold-soft);}
.arch-divider path, .arch-divider circle{stroke:var(--gold); fill:none; stroke-width:1.1;}
.arch-divider circle{fill:var(--gold);}

section{padding: var(--section-pad) 0; position:relative;}
.section-head{text-align:center; max-width:640px; margin:0 auto 56px;}
.section-head h2{font-size: clamp(2rem, 4.4vw, 3.1rem); margin-top:10px;}
.section-head p{font-family:'Cormorant Garamond', serif; font-style:italic; font-size:1.6rem; color:var(--cream-soft); margin-top:16px; line-height:1.6;}
.band-deep{background: var(--mocha-deep);}
.band-espresso{background: var(--espresso);}

.mission{padding: 110px clamp(20px,5vw,60px); text-align:center; background:var(--espresso); color:var(--ivory);}
.mission p{font-family:'Playfair Display', serif; font-weight:600; font-style:italic; font-size:clamp(1.4rem, 3vw, 2.1rem); max-width:820px; margin:0 auto; line-height:1.45; color: var(--ivory);}


/* ===== 12. SERVICES GRID ===== */
/* Flexbox instead of grid: with 5 cards, a 3-column grid leaves the
   bottom row of 2 stuck to the left. Flex-wrap + justify-content:
   center automatically centers that leftover row (3 on top, 2
   centered underneath) with no extra markup needed. */
.services-grid{display:flex; flex-wrap:wrap; justify-content:center; gap:28px;}
.service-card{flex: 1 1 300px; max-width:360px;}
.service-card{
  background: rgba(255,251,243,0.04); border:1px solid rgba(201,166,107,0.35);
  padding: 40px 30px; text-align:center; transition: border-color 0.3s ease, transform 0.3s ease;
}
.service-card:hover{border-color:var(--gold); transform:translateY(-4px);}
.service-card .num{font-family:'Cormorant Garamond', serif; font-style:italic; color:var(--gold); font-size:1rem; margin-bottom:14px; display:block;}
.service-card h3{font-size:1.4rem; margin-bottom:14px;}
.service-card p{font-size:0.92rem; line-height:1.7; color:var(--cream-soft); margin-bottom:22px; opacity:0.9;}
.service-card a{font-size:0.74rem; text-transform:uppercase; letter-spacing:0.12em; border-bottom:1px solid var(--gold); padding-bottom:4px; color:var(--gold-soft);}
@media (max-width:900px){.service-card{flex-basis: 45%;}}
@media (max-width:600px){.service-card{flex-basis: 100%;}}


/* ===== 13. ABOUT PAGE ===== */
.about-block{padding: 110px 0;}
.about-grid{display:grid; grid-template-columns: 0.85fr 1.15fr; gap: clamp(30px, 6vw, 90px); align-items:center;}
.about-grid.reverse{grid-template-columns:1.15fr 0.85fr;}
.about-grid.reverse .about-copy{order:-1;}
.about-frame{position:relative; border:1px solid var(--gold); padding:14px;}
.about-frame img{width:100%; height:620px; object-fit:cover; object-position: 50% 15%;}
.about-frame::before{content:''; position:absolute; top:-14px; left:-14px; right:14px; bottom:14px; border:1px solid var(--gold); z-index:-1;}
/* Homepage "about teaser" uses a smaller frame (~1.75x smaller than
   the full About-page photo) since the section also has less copy. */
.about-teaser.about-grid{grid-template-columns: 0.55fr 1.45fr;}
.about-teaser .about-frame{max-width:300px; margin:0 auto;}
.about-teaser .about-frame img{height:354px;}
@media (max-width:900px){
  .about-teaser.about-grid{grid-template-columns:1fr;}
  .about-teaser .about-frame{max-width:260px;}
}
.about-copy h2, .about-copy h3{font-size:clamp(1.7rem, 3vw, 2.4rem); margin-bottom:22px;}
.about-copy p{font-size:1.02rem; line-height:1.85; margin-bottom:18px; color:var(--cream-soft); max-width:520px;}
.pull-quote{font-family:'Cormorant Garamond', serif; font-style:italic; font-size:1cm; color:var(--gold-soft); margin-top:26px; padding-left:24px; border-left:1px solid var(--gold);}
.stat-row{display:flex; gap:42px; margin-top:36px; flex-wrap:wrap;}
.stat-row div h4{font-family:'Playfair Display'; color:var(--ivory); font-size:2rem;}
.stat-row div span{font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold-soft);}

.amazon-box{margin-top:38px; padding:26px 28px; border:1px dashed var(--gold); display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; max-width:520px;}
.amazon-box p{font-size:0.95rem; color:var(--cream-soft); margin:0; max-width:280px;}
.amazon-box a{white-space:nowrap;}


/* ===== 14. TESTIMONIALS ===== */
.testi-grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:32px;}
.testi-card{background: rgba(255,251,243,0.04); border:1px solid rgba(201,166,107,0.35); padding: 40px 32px; position:relative;}
.testi-mark{font-family:'Playfair Display'; font-size:3rem; color:var(--gold); line-height:1; margin-bottom:10px; display:block;}
.testi-card p{font-family:'Cormorant Garamond', serif; font-style:italic; font-size:1.2rem; line-height:1.6; color:var(--cream-soft); margin-bottom:22px;}
.testi-name{font-size:0.78rem; text-transform:uppercase; letter-spacing:0.1em; color:var(--gold-soft);}
@media (max-width:900px){.testi-grid{grid-template-columns:1fr;}}


/* ===== 15. FAQ ACCORDION ===== */
.faq-list{max-width:820px; margin:0 auto;}
.faq-item{border-bottom:1px solid rgba(201,166,107,0.3); padding: 24px 0;}
.faq-item summary{font-family:'Playfair Display', serif; font-size:1.15rem; color:var(--ivory); cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:20px;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:'+'; font-size:1.4rem; color:var(--gold); transition:transform 0.3s ease; flex-shrink:0;}
.faq-item[open] summary::after{transform:rotate(45deg);}
.faq-item p{font-size:0.98rem; line-height:1.8; color:var(--cream-soft); margin-top:16px; max-width:680px;}


/* ===== 16. SOCIAL CTA BAND ===== */
.social-cta{text-align:center; padding: var(--section-pad) 0; background:var(--espresso);}
.social-cta h2{font-size:clamp(1.7rem,3.4vw,2.4rem); margin-bottom:14px;}
.social-cta p{font-family:'Cormorant Garamond', serif; font-style:italic; font: size 4rem;; color:var(--cream-soft); margin-bottom:34px;}
.social-buttons{display:flex; justify-content:center; gap:20px; flex-wrap:wrap;}
.social-buttons a{display:flex; align-items:center; gap:10px; border:1px solid var(--gold); padding:14px 30px; font-size:0.8rem; text-transform:uppercase; letter-spacing:0.12em; color:var(--ivory); transition:all 0.3s ease;}
.social-buttons a:hover{background:var(--gold); color:var(--espresso);}
.social-buttons svg{width:18px; height:18px; fill:currentColor;}


/* ===== 17. CONTACT PAGE ===== */
.availability-strip{background:var(--espresso); color:var(--ivory); text-align:center; padding: 22px 20px; border-top:1px solid rgba(201,166,107,0.3); border-bottom:1px solid rgba(201,166,107,0.3);}
.availability-strip strong{color:var(--gold-soft);}
.contact-wrap{display:grid; grid-template-columns: 0.9fr 1.3fr; border:1px solid rgba(201,166,107,0.35);}
.contact-info{background: var(--espresso); padding: clamp(36px, 5vw, 64px);}
.contact-info .eyebrow{display:block; margin-bottom:14px;}
.contact-info h3{font-size:clamp(1.6rem, 3vw, 2.1rem); margin-bottom:22px;}
.availability-box{border:1px solid var(--gold); padding:18px 20px; margin: 24px 0 30px;}
.availability-box p{font-size:0.85rem; line-height:1.7; color:var(--cream-soft);}
.availability-box strong{color:var(--gold-soft); display:block; font-size:0.75rem; letter-spacing:0.08em; text-transform:uppercase; margin-bottom:6px;}
.contact-detail{margin-bottom:20px;}
.contact-detail span{display:block; font-size:0.7rem; text-transform:uppercase; letter-spacing:0.1em; color:var(--gold-soft); margin-bottom:4px;}
.contact-detail a, .contact-detail p{font-family:'Cormorant Garamond', serif; font-size:1.15rem; color:var(--ivory);}
.social-row{display:flex; gap:16px; margin-top:30px;}
.social-row a{width:38px; height:38px; border:1px solid var(--gold); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:0.85rem; transition: all 0.3s ease;}
.social-row a:hover{background:var(--gold); color:var(--espresso);}
.social-row svg{width:17px; height:17px; fill:currentColor;}

.contact-form{background: var(--cream-soft); padding: clamp(36px, 5vw, 64px);}
.contact-form h3{color:var(--espresso); font-size:1.5rem; margin-bottom:8px;}
.contact-form > p{font-family:'Cormorant Garamond', serif; font-style:italic; color:var(--mocha-deep); margin-bottom:32px; font-size:1.05rem;}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:22px;}
.field{margin-bottom:24px;}
.field label{display:block; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.1em; color:var(--mocha-deep); margin-bottom:8px;}
.field input, .field select, .field textarea{width:100%; background:transparent; border:none; border-bottom:1px solid rgba(63,42,34,0.35); padding: 10px 2px; font-family:'Jost', sans-serif; font-size:0.95rem; color:var(--espresso); outline:none; transition: border-color 0.3s ease;}
.field input:focus, .field select:focus, .field textarea:focus{border-color:var(--mocha-deep);}
.field textarea{resize:vertical; min-height:90px;}
fieldset{border:none; margin-bottom:24px; padding:0;}
fieldset legend{font-size:0.72rem; text-transform:uppercase; letter-spacing:0.1em; color:var(--mocha-deep); margin-bottom:10px;}
.radio-group{display:flex; flex-direction:column; gap:10px;}
.radio-group label{display:flex; align-items:flex-start; gap:10px; font-family:'Jost', sans-serif; font-size:0.9rem; color:var(--espresso); text-transform:none; letter-spacing:0; cursor:pointer;}
.radio-group input{width:auto; accent-color: var(--mocha-deep); margin-top:3px;}
.fine-print{font-size:0.78rem; color:var(--mocha-deep); margin: 6px 0 22px; line-height:1.6;}
.submit-btn{background:var(--espresso); color:var(--ivory); border:none; padding:16px 42px; font-family:'Jost', sans-serif; font-size:0.8rem; text-transform:uppercase; letter-spacing:0.14em; cursor:pointer; transition: all 0.3s ease;}
.submit-btn:hover{background:var(--mocha-deep);}
@media (max-width:900px){.contact-wrap{grid-template-columns:1fr;} .form-row{grid-template-columns:1fr;}}


/* ===== 18. FOOTER ===== */
footer{background: var(--espresso); padding: 50px 0 30px; text-align:center;}
footer .logo{display:inline-flex; margin-bottom:14px;}
footer .foot-links{display:flex; justify-content:center; gap:26px; margin-bottom:10px; flex-wrap:wrap;}
footer .foot-links a{font-size:0.78rem; text-transform:uppercase; letter-spacing:0.1em; color:var(--cream-soft);}
footer .foot-social{display:flex; justify-content:center; gap:16px; margin: 18px 0;}
footer .foot-social a{width:36px; height:36px; border:1px solid var(--gold); border-radius:50%; display:flex; align-items:center; justify-content:center; transition:all 0.3s ease;}
footer .foot-social a:hover{background:var(--gold); color:var(--espresso);}
footer .foot-social svg{width:16px; height:16px; fill:currentColor;}
footer .copyright{font-size:0.72rem; color: rgba(243,231,220,0.5); margin-top:10px;}


/* ===== 19. RESPONSIVE OVERRIDES ===== */
@media (max-width: 900px){
  .about-grid{grid-template-columns:1fr; gap:44px;}
  .about-frame img{height:420px;}

  /* Hero split (home page): stack photo above text on tablets/phones */
  .hero-split .hero-content{grid-template-columns:1fr; text-align:center;}
  .hero-split .hero-text{max-width:100%;}
  .hero-split .hero-text p.sub{margin-left:auto; margin-right:auto;}
  .hero-split .hero-photo{
    width: clamp(220px, 60vw, 300px);
    margin: 0 auto; /* was defaulting to the left edge on mobile — this centers it */
    order:-1;
  }
  .hero-split .hero-photo img{
    height:auto; aspect-ratio: 3/5; /* keeps a consistent, correctly-proportioned crop at any mobile width */
  }

  /* Marquee carousel: scale down from 3in so it doesn't dominate mobile screens */
  .carousel-track{height:2in;}
  .carousel-track .slide img{width:calc(2in * 0.6);}
}
@media (max-width: 480px){
  .stat-row{gap:26px;}
  .amazon-box{flex-direction:column; align-items:flex-start;}
  .carousel-track{height:1.5in;}
  .carousel-track .slide img{width:calc(1.5in * 0.6);}
}

@media (prefers-reduced-motion: reduce){
  *{animation:none !important; transition:none !important;}
  .reveal{opacity:1; transform:none;}
}
