/*
Theme Name: Ainee Pimentel
Theme URI: https://aineepimentel.com/
Author: Ainee Pimentel
Description: Custom portfolio theme for Ainee Pimentel Wedding & Event Planner.
Version: 1.3.0
Text Domain: ainee-pimentel
*/

:root{
  --linen:#F5EBE0;
  --champagne:#E3D5CA;
  --dogwood:#D5BDAF;
  --cinereous:#AB9A91;
  --gray:#817773;
  --ink:#2e2927;
  --paper:#fffaf5;
  --serif:"Stolen Love", "Italiana", Georgia, serif;
  --serif-condensed:"New Icon Serif Condensed", "Italiana", Georgia, serif;
  --script:"Sloop Script Three", cursive;
  --sans:"DM Sans", Arial, sans-serif;
  --pad:clamp(1.25rem,4vw,5rem);
  --radius:2px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--linen)}
body{margin:0;background:var(--linen);color:var(--ink);font-family:var(--sans);font-weight:300;line-height:1.6;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button,input,textarea{font:inherit}
::selection{background:var(--dogwood);color:var(--ink)}
.skip-link{position:fixed;top:8px;left:8px;z-index:1000;padding:.7rem 1rem;background:var(--ink);color:white;transform:translateY(-150%)}
.skip-link:focus{transform:none}
.section-shell{padding-left:var(--pad);padding-right:var(--pad)}
.site-header{position:fixed;z-index:100;top:0;left:0;width:100%;height:96px;padding:16px var(--pad);display:flex;align-items:center;justify-content:space-between;transition:background .4s,height .4s,border-color .4s;border-bottom:1px solid transparent}
.site-header.scrolled{height:76px;background:rgba(245,235,224,.9);backdrop-filter:blur(14px);border-color:rgba(129,119,115,.18)}
.brand{width:210px;height:58px;overflow:hidden;display:flex;align-items:center}
.brand img,.footer-brand img{width:100%;mix-blend-mode:multiply}
.site-nav{display:flex;align-items:center;gap:2rem;font-size:.86rem;letter-spacing:.03em}
.site-nav a:not(.nav-cta){position:relative}
.site-nav a:not(.nav-cta)::after{content:"";position:absolute;left:0;bottom:-4px;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .25s}
.site-nav a:hover::after,.site-nav a:focus-visible::after{transform:scaleX(1);transform-origin:left}
.nav-cta{padding:.78rem 1.15rem;border:1px solid var(--ink);transition:background .25s,color .25s}
.nav-cta:hover{background:var(--ink);color:var(--linen)}
.menu-toggle{display:none;background:none;border:0;color:var(--ink)}
.hero{min-height:100svh;padding-top:150px;padding-bottom:62px;display:grid;grid-template-columns:minmax(0,1.04fr) minmax(380px,.96fr);gap:clamp(2rem,6vw,7rem);align-items:center;position:relative}
.hero::before{content:"";position:absolute;width:420px;height:420px;border:1px solid rgba(129,119,115,.16);border-radius:50%;left:-180px;top:35%;pointer-events:none}
.eyebrow,.section-number{font-size:.72rem;text-transform:uppercase;letter-spacing:.2em;color:var(--gray);font-weight:500}
.hero h1{font:400 clamp(3.3rem,7.2vw,7.5rem)/.94 var(--serif);letter-spacing:-.035em;margin:1.2rem 0 1.7rem;max-width:10ch}
.hero h1 em{font-weight:400;color:var(--gray)}
.lede{font-size:clamp(1rem,1.4vw,1.18rem);max-width:560px;color:#615955}
.hero-actions{margin-top:2rem;display:flex;gap:1.5rem;align-items:center;flex-wrap:wrap}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.9rem 1.25rem;border:1px solid transparent;font-weight:500;font-size:.9rem;transition:transform .2s,background .2s,color .2s}
.button:hover{transform:translateY(-2px)}
.button-dark{background:var(--ink);color:#fff}
.button-dark:hover{background:var(--gray)}
.text-link{display:inline-flex;align-items:center;gap:.55rem;font-size:.92rem;border-bottom:1px solid rgba(46,41,39,.35);padding-bottom:.18rem}
.hero-art{position:relative;justify-self:end;width:min(100%,620px);padding:0 32px 40px 0}
.hero-wedding-frame{aspect-ratio:4/5;overflow:hidden;background:var(--champagne);position:relative}
.hero-wedding-frame img{width:100%;height:100%;object-fit:cover;object-position:50% 52%;filter:saturate(.94) contrast(.98)}
.hero-wedding-frame::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.3)}
.reference-badge{position:absolute;left:1rem;bottom:1rem;z-index:2;background:rgba(46,41,39,.78);color:#fff;padding:.48rem .65rem;font-size:.58rem;text-transform:uppercase;letter-spacing:.14em;backdrop-filter:blur(6px)}
.side-note{position:absolute;right:-38px;bottom:125px;transform:rotate(90deg);transform-origin:right bottom;margin:0;font-size:.67rem;text-transform:uppercase;letter-spacing:.17em;color:var(--gray)}
.seal{position:absolute;left:-46px;bottom:-4px;width:112px;height:112px;border-radius:50%;background:var(--dogwood);display:grid;place-items:center;border:8px solid var(--linen)}
.seal span{font:2rem var(--serif)}
.scroll-note{position:absolute;left:var(--pad);bottom:24px;font-size:.62rem;text-transform:uppercase;letter-spacing:.2em;color:var(--gray)}
.manifesto{padding-top:clamp(7rem,12vw,12rem);padding-bottom:clamp(7rem,12vw,12rem);display:grid;grid-template-columns:1fr 2fr;gap:4rem;border-top:1px solid rgba(129,119,115,.2)}
.manifesto-kicker{font:400 clamp(1.8rem,3.8vw,4rem)/1.1 var(--serif);max-width:9ch}
.manifesto-copy{max-width:880px}
.manifesto h2{font:400 clamp(2.6rem,5vw,5.7rem)/1.02 var(--serif);margin:0 0 2rem;letter-spacing:-.025em}
.manifesto p{max-width:650px;margin-left:auto;font-size:1.05rem;color:#615955}
.about{padding-top:clamp(6rem,9vw,9rem);padding-bottom:clamp(7rem,11vw,11rem);background:var(--paper)}
.about>.section-number{margin-bottom:3rem}
.about-grid{display:grid;grid-template-columns:minmax(320px,.85fr) minmax(0,1.15fr);gap:clamp(3rem,8vw,9rem);align-items:center}
.about-visual{max-width:650px}
.portrait-crop{aspect-ratio:4/4.7;overflow:hidden;background:var(--champagne)}
.portrait-crop img{width:100%;height:100%;object-fit:cover;object-position:52% 18%;filter:saturate(.78)}
.caption{font-size:.68rem;text-transform:uppercase;letter-spacing:.14em;color:var(--gray)}
.about-copy h2,.work h2,.journal h2,.contact h2{font:400 clamp(2.6rem,5.8vw,6rem)/1 var(--serif);letter-spacing:-.025em;margin:.8rem 0 1.7rem}
.about-copy>p:not(.eyebrow){max-width:600px;color:#615955;font-size:1.02rem}
.about-points{display:flex;border-top:1px solid var(--champagne);border-bottom:1px solid var(--champagne);margin:2.5rem 0;padding:1.2rem 0;gap:2rem;flex-wrap:wrap}
.about-points div{min-width:120px;flex:1}
.about-points span{font-size:.62rem;color:var(--cinereous)}
.about-points p{margin:.2rem 0 0;font-family:var(--serif);font-size:1.25rem}
.work{padding-top:clamp(7rem,11vw,11rem);padding-bottom:clamp(7rem,11vw,11rem)}
.work-heading{display:grid;grid-template-columns:1.3fr .7fr;gap:3rem;align-items:end;margin-bottom:4rem}
.work-heading h2{margin:.55rem 0 0}
.work-heading>p{max-width:430px;color:var(--gray)}
.story-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(1.4rem,3vw,3rem);align-items:start}
.story-card{margin:0}
.story-card-b{margin-top:12vw}
.story-card-c{grid-column:1 / -1;width:58%;margin-left:auto;margin-top:2vw}
.story-card-d{grid-column:1 / -1;width:42%;margin-top:-18vw}
.story-card-e{width:82%;margin-top:3vw}
.story-card-f{width:72%;margin-left:auto;margin-top:10vw}
.story-image{margin:0;position:relative;overflow:hidden;background:var(--champagne);aspect-ratio:4/5}
.story-image img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1),filter .7s;filter:saturate(.9) contrast(.97)}
.story-card:hover .story-image img{transform:scale(1.025);filter:saturate(1) contrast(1)}
.story-image figcaption{position:absolute;left:.9rem;right:.9rem;bottom:.9rem;margin:0;padding:.5rem .65rem;background:rgba(46,41,39,.74);color:#fff;font-size:.57rem;text-transform:uppercase;letter-spacing:.11em;line-height:1.35;backdrop-filter:blur(6px)}
.story-card-c .story-image{aspect-ratio:16/9}
.story-card-d .story-image{aspect-ratio:3/4}
.story-card-e .story-image{aspect-ratio:3/4}
.story-card-f .story-image{aspect-ratio:3/4}
.story-meta{display:flex;justify-content:space-between;gap:1rem;border-top:1px solid rgba(129,119,115,.28);padding-top:.75rem;margin-top:.8rem}
.story-meta p{margin:0;font:1.25rem var(--serif)}
.story-meta span{font-size:.68rem;color:var(--gray);text-transform:uppercase;letter-spacing:.12em;text-align:right}
.journal{padding-top:clamp(7rem,11vw,11rem);padding-bottom:clamp(7rem,11vw,11rem);background:var(--champagne)}
.journal-intro{display:grid;grid-template-columns:1.25fr .75fr;gap:3rem;align-items:end;margin:2rem 0 4rem}
.journal-intro h2{margin:0;max-width:12ch}
.journal-intro p{color:#615955;max-width:420px}
.journal-list{border-top:1px solid rgba(46,41,39,.22)}
.journal-item{display:grid;grid-template-columns:.45fr 1.2fr .35fr;align-items:center;gap:2rem;padding:1.6rem 0;border-bottom:1px solid rgba(46,41,39,.22);transition:padding .25s,background .25s}
.journal-item:hover{padding-left:1rem;padding-right:1rem;background:rgba(255,255,255,.2)}
.journal-item span,.journal-item p{font-size:.68rem;text-transform:uppercase;letter-spacing:.13em;color:var(--gray)}
.journal-item h3{font:400 clamp(1.35rem,2.6vw,2.5rem)/1.05 var(--serif);margin:0}
.journal-item p{text-align:right}
.contact{min-height:78vh;background:var(--ink);color:var(--linen);display:grid;grid-template-columns:1.2fr .8fr;align-items:center;gap:3rem;padding-top:7rem;padding-bottom:7rem;overflow:hidden}
.contact-panel{max-width:750px;position:relative;z-index:2}
.contact .eyebrow{color:var(--cinereous)}
.contact h2{margin:.8rem 0 1.8rem;max-width:9ch}
.contact p{max-width:600px;color:#d8cec8}
.button-light{background:var(--linen);color:var(--ink);margin-top:1rem}
.contact small{display:block;margin-top:.8rem;color:#9f928b}
.contact-mark{font:400 clamp(18rem,38vw,42rem)/.75 var(--serif);color:rgba(245,235,224,.045);justify-self:end;transform:translateX(12%)}
.site-footer{padding-top:4rem;padding-bottom:2rem;background:var(--paper);display:grid;grid-template-columns:1fr 1fr;gap:3rem;border-top:1px solid var(--champagne)}
.footer-brand{width:240px;overflow:hidden}
.footer-nav{display:flex;justify-content:flex-end;gap:1.4rem;flex-wrap:wrap;font-size:.85rem}
.footer-note{font-size:.72rem;color:var(--gray);max-width:560px}
.copyright{font-size:.72rem;color:var(--gray);text-align:right}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.reveal.is-visible{opacity:1;transform:none}
@media (max-width: 900px){
  .site-header{height:78px}.brand{width:175px}.menu-toggle{display:flex;flex-direction:column;align-items:flex-end;gap:4px;position:relative;z-index:102}.menu-toggle span{font-size:.72rem;text-transform:uppercase;letter-spacing:.14em}.menu-toggle i{display:block;width:28px;height:1px;background:currentColor}
  .site-nav{position:fixed;inset:0;background:var(--linen);z-index:101;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:var(--pad);gap:1.4rem;transform:translateY(-105%);transition:transform .45s cubic-bezier(.6,0,.2,1);font:2.2rem var(--serif)}
  .site-nav.open{transform:none}.site-nav .nav-cta{font:1rem var(--sans);margin-top:1rem}
  .hero{grid-template-columns:1fr;padding-top:120px;gap:3.5rem}.hero h1{max-width:11ch}.hero-art{width:min(92%,600px);justify-self:center}.scroll-note{display:none}
  .manifesto,.about-grid,.work-heading,.journal-intro,.contact{grid-template-columns:1fr}.manifesto{gap:2.5rem}.manifesto p{margin-left:0}.about-grid{gap:3.5rem}.about-visual{width:min(86%,620px)}
  .work-heading{align-items:start}.story-card-b{margin-top:10vw}.story-card-c{width:75%}.story-card-d{width:48%;margin-top:-12vw}.story-card-e{width:78%}.story-card-f{width:78%;margin-top:8vw}.contact-mark{display:none}.contact{min-height:auto}
  .site-footer{grid-template-columns:1fr}.footer-nav{justify-content:flex-start}.copyright{text-align:left}
}
@media (max-width: 620px){
  :root{--pad:1.1rem}.hero{padding-top:110px}.hero h1{font-size:clamp(3rem,15vw,4.7rem)}.lede{font-size:.98rem}.hero-actions{align-items:flex-start;flex-direction:column}.hero-art{padding-right:18px}.side-note{right:-24px}.seal{width:88px;height:88px;left:-18px}.seal span{font-size:1.5rem}
  .manifesto{padding-top:6rem;padding-bottom:6rem}.manifesto h2{font-size:2.7rem}.about,.work,.journal{padding-top:6rem;padding-bottom:6rem}.about-copy h2,.work h2,.journal h2,.contact h2{font-size:clamp(2.7rem,13vw,4rem)}
  .story-grid{grid-template-columns:1fr}.story-card-b{margin-top:1.5rem}.story-card-c,.story-card-d,.story-card-e,.story-card-f{grid-column:auto;width:100%;margin:1.5rem 0 0}.story-card-c .story-image,.story-card-d .story-image,.story-card-e .story-image,.story-card-f .story-image{aspect-ratio:4/5}.story-meta{align-items:flex-start}.journal-item{grid-template-columns:1fr;gap:.4rem}.journal-item p{text-align:left;margin:.4rem 0}.contact{padding-top:5.5rem;padding-bottom:5.5rem}
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}
}

/* Client visual reference: contact-reference.png
   Dark editorial contact treatment with oversized serif heading and warm ivory CTA. */
.contact {
  background: #302a28;
  color: #f5ebe0;
}
.contact .eyebrow {
  color: #c8b7af;
  letter-spacing: .18em;
}
.contact-panel h2 {
  color: #f7ede3;
  max-width: 7.5ch;
}
.contact-panel > p:not(.eyebrow) {
  color: rgba(247, 237, 227, .82);
}
.contact-panel small {
  color: rgba(247, 237, 227, .58);
}
.button-light {
  background: #f5ebe0;
  color: #302a28;
}
.button-light:hover,
.button-light:focus-visible {
  background: #e3d5ca;
}

/* Client typography direction reference: typography-reference.png.
   The reference artwork names commercial display/script fonts. The demo keeps
   the logo as artwork and uses licensed web typography for editable text. */


/* Typography packages supplied by the client
   ------------------------------------------------------------
   Intended roles:
   - Stolen Love: primary editorial display serif
   - New Icon Serif / Condensed: secondary fashion-editorial serif
   - Sloop Script Three: restrained handwritten accent

   IMPORTANT: the demo does not redistribute or self-host the supplied font
   binaries. New Icon's included info.txt states "Free for Personal Use",
   so a commercial/web license should be confirmed before production use.
   Stolen Love and Sloop were supplied without an included license file.

   The font-family names are already placed in the stacks above. If the
   corresponding licensed webfonts are later self-hosted, add @font-face
   declarations here and the design will begin using them automatically. */

/* Editorial typography tuning inspired by the supplied font references. */
.hero h1,
.manifesto-kicker,
.manifesto h2,
.about-copy h2,
.work h2,
.journal h2,
.contact h2,
.journal-item h3,
.story-meta p {
  text-wrap: balance;
}
.hero h1 em,
.contact h2 {
  font-style: normal;
}

/* Multipage update */
:root{--ink:#6f6762}
.page-main{padding-top:96px}
.page-section{min-height:calc(100svh - 96px)}
.page-title{font:400 clamp(3.2rem,7vw,7rem)/.96 var(--serif);letter-spacing:-.035em;margin:.7rem 0 1.8rem;color:var(--ink)}
.about-copy .page-title{max-width:9ch}
.about-copy>p{max-width:680px}
.about-copy>p+p{margin-top:1rem}
.button-outline{border-color:var(--ink);color:var(--ink);background:transparent}
.button-outline:hover,.button-outline:focus-visible{background:var(--ink);color:var(--linen)}
.page-cta{margin-top:clamp(5rem,9vw,9rem);padding-top:2rem;border-top:1px solid rgba(111,103,98,.28);display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap}
.page-cta p{font:400 clamp(1.6rem,3vw,3rem)/1.1 var(--serif);margin:0;max-width:18ch}
.journal-item h2{font:400 clamp(1.35rem,2.6vw,2.5rem)/1.05 var(--serif);margin:0}
.contact-page-main{padding-top:0;background:#6f6762}
.page-contact{padding-top:clamp(9rem,14vw,13rem);padding-bottom:clamp(7rem,11vw,10rem);min-height:100svh;background:#6f6762}
.contact,.contact-page-main .contact{background:#6f6762}
.contact-title{color:#f7ede3!important;max-width:7.5ch}
.contact-actions{display:flex;gap:.85rem;flex-wrap:wrap;align-items:center;margin-top:1.4rem}
.button-contact-outline{border-color:rgba(245,235,224,.7);color:#f5ebe0;background:transparent}
.button-contact-outline:hover,.button-contact-outline:focus-visible{background:#f5ebe0;color:#6f6762}
.button-light{color:#6f6762}
.whatsapp-float{position:fixed;right:1.15rem;bottom:1.15rem;z-index:120;display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:.75rem 1rem;border-radius:999px;background:#6f6762;color:#fff;font:500 .78rem var(--sans);letter-spacing:.04em;box-shadow:0 10px 30px rgba(46,41,39,.18);border:1px solid rgba(255,255,255,.22);transition:transform .2s,box-shadow .2s}
.whatsapp-float:hover,.whatsapp-float:focus-visible{transform:translateY(-2px);box-shadow:0 12px 34px rgba(46,41,39,.25)}
.site-header.scrolled{background:rgba(245,235,224,.94)}
.nav-cta{border-color:#6f6762}.nav-cta:hover{background:#6f6762}
.button-dark{background:#6f6762}.button-dark:hover{background:#817773}
.skip-link{background:#6f6762}
@media (max-width:900px){.page-main{padding-top:78px}.page-section{min-height:auto}.contact-page-main{padding-top:0}.page-contact{padding-top:8rem}.contact-actions{align-items:stretch}.contact-actions .button{width:100%}}

/* Mobile: avoid floating WhatsApp overlap with gallery/content. */
@media (max-width: 900px){
  .whatsapp-float{display:none}
}

/* Compact moving wedding preview on Home */
.home-weddings{padding:clamp(3.5rem,6vw,5.5rem) 0;background:var(--paper);overflow:hidden;border-top:1px solid rgba(111,103,98,.16)}
.home-weddings-head{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-bottom:1.8rem}
.home-weddings-head h2{font:400 clamp(2rem,3.8vw,3.8rem)/1.02 var(--serif);letter-spacing:-.025em;margin:.55rem 0 0;max-width:15ch;color:var(--ink)}
.wedding-marquee{width:100%;overflow:hidden}
.wedding-marquee-track{display:flex;width:max-content;gap:.8rem;animation:wedding-marquee 38s linear infinite;will-change:transform}
.wedding-marquee:hover .wedding-marquee-track,.wedding-marquee:focus-within .wedding-marquee-track{animation-play-state:paused}
.wedding-marquee-card{display:block;flex:0 0 clamp(180px,19vw,285px);height:clamp(150px,16vw,235px);overflow:hidden;background:var(--champagne)}
.wedding-marquee-card img{width:100%;height:100%;object-fit:cover;transition:transform .55s cubic-bezier(.2,.7,.2,1),filter .55s;filter:saturate(.92) contrast(.98)}
.wedding-marquee-card:hover img,.wedding-marquee-card:focus-visible img{transform:scale(1.035);filter:saturate(1) contrast(1)}
@keyframes wedding-marquee{from{transform:translateX(0)}to{transform:translateX(calc(-50% - .4rem))}}
@media (max-width:620px){
  .home-weddings{padding:3.2rem 0}
  .home-weddings-head{align-items:flex-start;flex-direction:column;margin-bottom:1.25rem}
  .home-weddings-head h2{font-size:2.35rem;max-width:12ch}
  .wedding-marquee-card{flex-basis:190px;height:155px}
  .wedding-marquee-track{gap:.65rem;animation-duration:32s}
}
@media (prefers-reduced-motion: reduce){
  .wedding-marquee{overflow-x:auto;scrollbar-width:thin}
  .wedding-marquee-track{animation:none}
}

/* Mobile navigation hardening: keep the CTA fully inside the closed menu panel. */
@media (max-width: 900px){
  .site-nav{
    visibility:hidden;
    pointer-events:none;
  }
  .site-nav.open{
    visibility:visible;
    pointer-events:auto;
  }
  .site-nav .nav-cta{
    position:static;
    width:auto;
    max-width:100%;
  }
}


/* Home: Meet the Planner */
.home-meet{padding-top:clamp(5rem,8vw,8rem);padding-bottom:clamp(5rem,8vw,8rem);background:var(--paper);display:grid;grid-template-columns:minmax(260px,.72fr) minmax(0,1fr);gap:clamp(2.5rem,7vw,8rem);align-items:center}
.home-meet-visual{max-width:540px}
.home-meet-visual .portrait-crop{aspect-ratio:4/5;overflow:hidden}
.home-meet-visual img{width:100%;height:100%;object-fit:cover;object-position:center 22%}
.home-meet-copy h2{font:400 clamp(3rem,5.5vw,5.8rem)/.98 var(--serif);letter-spacing:-.03em;margin:.65rem 0 1.5rem;color:var(--ink)}
.home-meet-copy>p:not(.eyebrow){max-width:670px;color:#615955}

/* Home inquiry form */
.home-inquiry{padding-top:clamp(5rem,9vw,9rem);padding-bottom:clamp(5rem,9vw,9rem);background:var(--linen);display:grid;grid-template-columns:minmax(240px,.72fr) minmax(0,1.28fr);gap:clamp(2.5rem,7vw,8rem);align-items:start;border-top:1px solid rgba(111,103,98,.16)}
.home-inquiry-intro h2{font:400 clamp(2.8rem,5vw,5.5rem)/1 var(--serif);letter-spacing:-.03em;margin:.65rem 0 1.4rem;max-width:10ch}
.home-inquiry-intro>p:not(.eyebrow){max-width:520px;color:#615955}
.form-demo-note{font-size:.76rem!important;color:var(--gray)!important;border-left:1px solid var(--cinereous);padding-left:1rem;margin-top:1.6rem}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.35rem 1rem}
.inquiry-form label{display:flex;flex-direction:column;gap:.45rem;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--gray)}
.inquiry-form label b{font-weight:400;color:var(--ink)}
.inquiry-form input,.inquiry-form select{width:100%;border:0;border-bottom:1px solid rgba(111,103,98,.4);border-radius:0;background:transparent;color:var(--ink);padding:.75rem .1rem .7rem;outline:none;font:400 1rem var(--sans)}
.inquiry-form input:focus,.inquiry-form select:focus{border-bottom-color:var(--ink)}
.inquiry-form select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--gray) 50%),linear-gradient(135deg,var(--gray) 50%,transparent 50%);background-position:calc(100% - 14px) 50%,calc(100% - 9px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:2rem}
.form-actions{display:flex;align-items:center;gap:1.35rem;flex-wrap:wrap;margin-top:2rem}
.form-status{min-height:1.5em;margin:.9rem 0 0;font-size:.82rem;color:var(--gray)}

@media (max-width:900px){
  .home-meet,.home-inquiry{grid-template-columns:1fr}
  .home-meet-visual{width:min(78%,520px)}
}
@media (max-width:620px){
  .home-meet{padding-top:4rem;padding-bottom:4.5rem;gap:2.2rem}
  .home-meet-visual{width:82%}
  .home-meet-copy h2{font-size:3.15rem}
  .home-inquiry{padding-top:4.5rem;padding-bottom:4.5rem;gap:2.5rem}
  .home-inquiry-intro h2{font-size:3rem}
  .form-grid{grid-template-columns:1fr}
  .form-actions{align-items:stretch;flex-direction:column}
  .form-actions .button{width:100%}
  .home-weddings{display:block!important;visibility:visible!important}
  .wedding-marquee{display:block!important}
}


/* Dedicated inquiry page */
.inquiry-page{padding-top:clamp(9rem,14vw,12rem);padding-bottom:clamp(5rem,9vw,9rem);display:grid;grid-template-columns:minmax(240px,.72fr) minmax(0,1.28fr);gap:clamp(2.5rem,7vw,8rem);align-items:start;background:var(--linen)}
.inquiry-page-intro .page-title{font:400 clamp(3rem,6vw,6.2rem)/.98 var(--serif);letter-spacing:-.03em;margin:.7rem 0 1.4rem;max-width:9ch}
.inquiry-page-intro>p:not(.eyebrow){max-width:520px;color:#615955}
@media (max-width:900px){.inquiry-page{grid-template-columns:1fr;padding-top:7rem}}
@media (max-width:620px){.inquiry-page{padding-top:6.5rem;padding-bottom:4rem}.form-grid{grid-template-columns:1fr}}

/* Reliable mobile menu interaction */
@media (max-width:900px){
  .site-header{z-index:300}
  .menu-toggle{z-index:302;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
  .site-nav{z-index:301;transform:translateY(-100%);opacity:0;visibility:hidden;pointer-events:none;transition:transform .38s cubic-bezier(.6,0,.2,1),opacity .25s ease,visibility 0s linear .38s}
  .site-nav.open{transform:translateY(0);opacity:1;visibility:visible;pointer-events:auto;transition:transform .38s cubic-bezier(.6,0,.2,1),opacity .25s ease,visibility 0s}
  body.menu-open{overflow:hidden}
  .menu-toggle[aria-expanded="true"] i:first-of-type{transform:translateY(2.5px) rotate(45deg)}
  .menu-toggle[aria-expanded="true"] i:last-of-type{transform:translateY(-2.5px) rotate(-45deg)}
  .menu-toggle i{transition:transform .25s ease}
}


/* 2026-10 portfolio, services, Instagram, inquiry and footer refinement */
.services-home{padding-top:clamp(5rem,9vw,9rem);padding-bottom:clamp(5rem,9vw,9rem);background:var(--linen)}
.services-heading{display:grid;grid-template-columns:.45fr 1fr;gap:2rem;align-items:end;margin-bottom:clamp(3rem,6vw,6rem)}
.services-heading h2{font:400 clamp(2.8rem,5vw,5.5rem)/.98 var(--serif);letter-spacing:-.03em;margin:0;max-width:13ch}
.service-feature{display:grid;gap:clamp(2rem,5vw,5rem);align-items:center;border-top:1px solid rgba(111,103,98,.22);padding-top:clamp(2rem,4vw,4rem);margin-top:clamp(2.5rem,5vw,5rem)}
.service-weddings{grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr)}
.service-events{grid-template-columns:minmax(280px,.65fr) minmax(0,.72fr);margin-left:clamp(0px,10vw,140px)}
.service-image{overflow:hidden;min-height:420px}.service-image img{width:100%;height:100%;min-height:420px;object-fit:cover}.service-image-small{min-height:320px}.service-image-small img{min-height:320px}
.service-copy{max-width:560px}.service-copy h3{font:400 clamp(3rem,6vw,6rem)/.92 var(--serif);margin:.4rem 0 1rem}.service-copy p:not(.service-number){color:#615955}.service-number{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--gray)}

.portfolio-main{padding-top:96px}.portfolio-intro{padding-top:clamp(5rem,8vw,8rem);padding-bottom:clamp(3rem,5vw,5rem);display:grid;grid-template-columns:1fr .7fr;gap:clamp(2rem,6vw,7rem);align-items:end}.portfolio-intro .page-title{margin:.6rem 0 0}.portfolio-intro>p:last-child{max-width:520px;color:#615955}
.project-list{padding-bottom:clamp(5rem,9vw,9rem)}.portfolio-note{font-size:.8rem;color:var(--gray);border-left:1px solid var(--cinereous);padding-left:1rem;max-width:820px;margin:0 0 3rem}
.project-block{margin-top:clamp(3rem,7vw,7rem)}.project-head{background:#6f6762;color:#f7ede3;padding:clamp(1.4rem,2.5vw,2.5rem);display:flex;align-items:end;justify-content:space-between;gap:2rem}.project-head h2{font:400 clamp(2rem,4vw,4.6rem)/.96 var(--serif);margin:0}.project-head p{margin:.3rem 0 0;color:#f1e5da}.project-head span{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;opacity:.8;text-align:right}
.project-carousel{position:relative;background:var(--champagne);overflow:hidden}.carousel-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;-webkit-overflow-scrolling:touch}.carousel-track::-webkit-scrollbar{display:none}.carousel-slide{flex:0 0 100%;margin:0;min-height:min(72vh,760px);display:grid;place-items:center;background:#d8ccc4;scroll-snap-align:start}.carousel-slide img{width:100%;height:min(72vh,760px);object-fit:contain;background:#d8ccc4}.carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:48px;height:48px;border:1px solid rgba(255,255,255,.7);border-radius:50%;background:rgba(46,41,39,.55);color:#fff;font-size:1.4rem;display:grid;place-items:center;cursor:pointer;backdrop-filter:blur(6px)}.carousel-prev{left:1rem}.carousel-next{right:1rem}.carousel-arrow:hover,.carousel-arrow:focus-visible{background:#6f6762}
.page-contact-band{margin-top:0;padding-top:clamp(3rem,6vw,6rem);padding-bottom:clamp(3rem,6vw,6rem);border-top:1px solid rgba(111,103,98,.22);display:flex;align-items:end;justify-content:space-between;gap:2rem}.page-contact-band h2{font:400 clamp(2rem,4vw,4rem)/1 var(--serif);margin:.5rem 0 0;max-width:14ch}

.events-pending{padding-bottom:clamp(6rem,10vw,10rem);display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(2.5rem,7vw,7rem);align-items:center}.events-pending-copy h2{font:400 clamp(2rem,4vw,4.4rem)/1 var(--serif);margin:.6rem 0 1.4rem}.events-pending figure{margin:0}.events-pending figure img{width:100%;max-height:700px;object-fit:contain;background:var(--champagne)}.events-pending figcaption{font-size:.72rem;color:var(--gray);margin-top:.7rem}

.instagram-home{padding-top:clamp(5rem,8vw,8rem);padding-bottom:clamp(5rem,8vw,8rem);background:var(--paper);display:grid;grid-template-columns:.5fr 1.5fr;gap:clamp(2.5rem,6vw,7rem);align-items:end}.instagram-copy h2{font:400 clamp(2.5rem,5vw,5rem)/1 var(--serif);margin:.5rem 0 1rem}.instagram-copy p{color:#615955}.instagram-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.instagram-tile{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--champagne)}.instagram-tile img{width:100%;height:100%;object-fit:cover;transition:transform .45s}.instagram-tile:hover img,.instagram-tile:focus-visible img{transform:scale(1.03)}.instagram-tile span{position:absolute;left:.7rem;bottom:.7rem;background:rgba(245,235,224,.88);padding:.35rem .55rem;font-size:.62rem;text-transform:uppercase;letter-spacing:.08em}.integration-note{grid-column:2;font-size:.72rem;color:var(--gray);margin:.6rem 0 0}
.home-contact{margin-top:0}.home-contact .contact-title{font:400 clamp(3.2rem,7vw,7rem)/.94 var(--serif);margin:.7rem 0 1.3rem}

.inquiry-form label small{font-size:.65rem;letter-spacing:.03em;text-transform:none;color:var(--gray);margin-left:.35rem}.form-wide{grid-column:1/-1}.inquiry-form input::placeholder{color:#9a8d86;opacity:.8}

.site-footer{grid-template-columns:1.2fr .8fr!important}.footer-connect{grid-column:1/-1;padding-bottom:2.5rem;border-bottom:1px solid rgba(111,103,98,.18);display:flex;align-items:center;justify-content:space-between;gap:2rem}.footer-script{font:400 clamp(2rem,4vw,4rem)/1 var(--serif);margin:0}.social-icons{display:flex;gap:.75rem}.social-icons a{width:42px;height:42px;border:1px solid rgba(111,103,98,.4);border-radius:50%;display:grid;place-items:center}.social-icons svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.social-icons a:hover,.social-icons a:focus-visible{background:#6f6762;color:#fff;border-color:#6f6762}

@media (max-width:900px){
  .services-heading,.service-weddings,.service-events,.portfolio-intro,.events-pending,.instagram-home{grid-template-columns:1fr}.service-events{margin-left:0}.service-events .service-copy{order:2}.service-events .service-image{order:1}.service-image,.service-image img{min-height:360px}.portfolio-main{padding-top:78px}.project-head{align-items:flex-start;flex-direction:column}.project-head span{text-align:left}.carousel-slide,.carousel-slide img{height:min(65vh,640px);min-height:0}.instagram-copy{max-width:540px}.integration-note{grid-column:1}.site-footer{grid-template-columns:1fr!important}.footer-connect{align-items:flex-start;flex-direction:column}
}
@media (max-width:620px){
  .services-home{padding-top:4rem;padding-bottom:4rem}.services-heading{gap:1rem}.services-heading h2{font-size:3rem}.service-image,.service-image img{min-height:300px}.service-copy h3{font-size:3.5rem}
  .portfolio-intro{padding-top:4rem}.project-head{padding:1.25rem}.project-head h2{font-size:2.4rem}.project-block{margin-top:3rem}.project-carousel{touch-action:pan-x}.carousel-slide,.carousel-slide img{height:68svh;max-height:620px}.carousel-arrow{width:42px;height:42px}.carousel-prev{left:.65rem}.carousel-next{right:.65rem}
  .page-contact-band{align-items:flex-start;flex-direction:column}.instagram-home{padding-top:4rem;padding-bottom:4rem;gap:2rem}.instagram-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem}.instagram-tile{aspect-ratio:3/4}.instagram-tile span{display:none}.instagram-copy h2{font-size:3.15rem}.footer-script{font-size:2.5rem}
}

/* Mobile header visibility fix — keep menu control available while scrolling */
@media (max-width: 900px){
  .site-header,
  .site-header.scrolled{
    position:fixed !important;
    top:0;
    left:0;
    right:0;
    width:100%;
    height:calc(78px + env(safe-area-inset-top, 0px));
    padding-top:calc(12px + env(safe-area-inset-top, 0px));
    padding-bottom:12px;
    background:rgba(245,235,224,.96);
    border-bottom:1px solid rgba(129,119,115,.18);
    -webkit-backdrop-filter:blur(14px);
    backdrop-filter:blur(14px);
    transform:translateZ(0);
    -webkit-transform:translateZ(0);
    -webkit-backface-visibility:hidden;
    backface-visibility:hidden;
    z-index:1000;
  }

  .brand{
    position:relative;
    z-index:1002;
  }

  .menu-toggle{
    display:flex !important;
    position:fixed !important;
    top:calc(18px + env(safe-area-inset-top, 0px));
    right:var(--pad);
    min-width:54px;
    min-height:44px;
    padding:6px 0 6px 8px;
    align-items:flex-end;
    justify-content:center;
    color:var(--ink) !important;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    transform:none !important;
    z-index:1003 !important;
  }

  .menu-toggle span,
  .menu-toggle i{
    opacity:1 !important;
    visibility:visible !important;
  }

  .site-nav{
    position:fixed;
    inset:0;
    min-height:100dvh;
    padding-top:calc(96px + env(safe-area-inset-top, 0px));
    z-index:1001;
  }

  body.menu-open .menu-toggle{
    position:fixed !important;
    z-index:1003 !important;
  }
}


/* Real Instagram post grid */
.instagram-post-card{min-width:0;background:#fff;border:1px solid rgba(111,103,98,.16);overflow:hidden;display:flex;flex-direction:column}.instagram-embed{display:block;width:100%;height:560px;background:#fff;border:0}.instagram-post-link{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem .9rem;border-top:1px solid rgba(111,103,98,.12);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);background:var(--linen)}.instagram-post-link:hover,.instagram-post-link:focus-visible{text-decoration:underline}.instagram-grid{align-items:start}.instagram-tile{display:none!important}
@media (max-width:760px){.instagram-home{overflow:hidden}.instagram-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.3rem;width:100%}.instagram-post-card{min-width:0}.instagram-embed{height:250px;pointer-events:auto}.instagram-post-link{padding:.5rem .35rem;font-size:.52rem;letter-spacing:.03em;justify-content:center}.instagram-post-link span{display:none}.integration-note{font-size:.65rem}}
@media (max-width:430px){.instagram-embed{height:220px}}

/* 1.0.1: keep the portfolio moving and give Instagram embeds room to render. */
.wedding-marquee:hover .wedding-marquee-track,
.wedding-marquee:focus-within .wedding-marquee-track {
  animation-play-state: running;
}

.instagram-grid {
  gap: 1.15rem;
}

/* Preserve the full proportions of the supplied brand mark. */
.brand img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* Managed Journal articles. */
.journal-entry-card{display:grid;grid-template-columns:minmax(180px,280px) 1fr;column-gap:clamp(1.5rem,4vw,4rem);align-items:start}.journal-entry-card .journal-card-image{grid-row:1/5;display:block;aspect-ratio:4/3;overflow:hidden}.journal-card-image img{width:100%;height:100%;object-fit:cover;transition:transform .45s}.journal-card-image:hover img{transform:scale(1.025)}
.journal-story-main{padding-top:96px}.journal-story-header{padding-top:clamp(5rem,10vw,9rem);padding-bottom:clamp(3rem,6vw,5rem);text-align:center}.journal-story-header .page-title{max-width:18ch;margin-left:auto;margin-right:auto}.journal-story-intro{max-width:58ch;margin:1.5rem auto 0;color:var(--gray)}
.journal-story-hero{margin:0 auto;width:min(100%,1400px);height:min(75vh,860px);overflow:hidden}.journal-story-hero img{width:100%;height:100%;object-fit:cover}.journal-story-content{max-width:900px;padding-top:clamp(3rem,7vw,7rem);padding-bottom:clamp(3rem,7vw,7rem)}.journal-story-content p{font-size:1.08rem;line-height:1.85}.journal-story-content h2,.journal-story-content h3{font-family:var(--serif);font-weight:400;line-height:1.1;margin-top:2.5rem}
@media (max-width:760px){.journal-entry-card{grid-template-columns:1fr}.journal-entry-card .journal-card-image{grid-row:auto;margin-bottom:1rem}.journal-story-main{padding-top:78px}.journal-story-hero{height:55vh}}

.instagram-post-card {
  border-radius: 2px;
  box-shadow: 0 8px 24px rgba(77, 69, 64, .06);
}

@media (max-width: 760px) {
  .instagram-home {
    overflow: visible;
  }

  .instagram-grid {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }

  .instagram-embed {
    height: 520px;
  }

  .instagram-post-link {
    justify-content: space-between;
    padding: .85rem 1rem;
    font-size: .7rem;
    letter-spacing: .08em;
  }

  .instagram-post-link span {
    display: inline;
  }
}

/* The home page intentionally displays exactly two editable Instagram posts. */
.instagram-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-width: 820px;
}

@media (max-width: 760px) {
  .instagram-grid {
    grid-template-columns: 1fr;
    max-width: none;
  }
}

@media (max-width: 430px) {
  .instagram-embed {
    height: 480px;
  }
}

/* Managed wedding stories (WordPress > Bodas). */
.managed-weddings{padding-top:clamp(4rem,8vw,8rem);padding-bottom:clamp(4rem,8vw,8rem)}
.managed-weddings-head{margin-bottom:2rem}.managed-weddings-head h2{font:400 clamp(2.7rem,5vw,5rem)/1 var(--serif);letter-spacing:-.035em;margin:.5rem 0 0}
.managed-weddings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1.5rem,4vw,4rem)}
.managed-wedding-card{background:var(--paper)}.managed-wedding-image{display:block;aspect-ratio:4/3;overflow:hidden;background:var(--champagne)}
.managed-wedding-image img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.managed-wedding-image:hover img{transform:scale(1.025)}
.managed-wedding-placeholder{width:100%;height:100%;display:grid;place-items:center;font:400 4rem/1 var(--serif);color:var(--gray)}
.managed-wedding-copy{padding:1.4rem 0}.managed-wedding-copy h3{font:400 clamp(2rem,3vw,3rem)/1.05 var(--serif);margin:0 0 .8rem}.managed-wedding-copy h3 a{color:inherit}.managed-wedding-copy p{max-width:52ch;color:var(--gray)}
.wedding-story-main{padding-top:96px}.wedding-story-header{padding-top:clamp(5rem,10vw,9rem);padding-bottom:clamp(3rem,6vw,5rem);text-align:center}.wedding-story-header .page-title{max-width:16ch;margin-left:auto;margin-right:auto}
.wedding-story-intro{max-width:56ch;margin:1.5rem auto 0;color:var(--gray)}.wedding-story-hero{margin:0;width:100%;height:min(78vh,900px);overflow:hidden}.wedding-story-hero img{width:100%;height:100%;object-fit:cover}
.wedding-story-content{max-width:1000px;padding-top:clamp(3rem,7vw,7rem);padding-bottom:clamp(3rem,7vw,7rem)}.wedding-story-content>p{max-width:720px;margin-left:auto;margin-right:auto;font-size:1.08rem;line-height:1.8}.wedding-story-content .wp-block-gallery{margin:clamp(2rem,5vw,5rem) 0;gap:1rem}.wedding-story-content img{max-width:100%;height:auto}
@media (max-width:760px){.managed-weddings-grid{grid-template-columns:1fr}.wedding-story-main{padding-top:78px}.wedding-story-hero{height:62vh}.wedding-story-content .wp-block-gallery{gap:.5rem}}

/* iOS Safari must treat the marquee as a real scroll container for the
   JavaScript mobile loop to advance scrollLeft reliably. */
@media (max-width: 760px) {
  .wedding-marquee {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .wedding-marquee::-webkit-scrollbar {
    display: none;
  }
}
