/*
Theme Name: Samy Hamila
Theme URI: https://samyhamila.com
Author: Samy Hamila
Description: Custom theme for Samy Hamila — destination wedding photography, based between Tunisia and France.
Version: 1.0
Text Domain: samy-hamila
*/

:root{
  --paper:#F6EEDF;
  --paper-deep:#ECDFC4;
  --umber:#4A3524;
  --umber-soft:#5C4230;
  --ink:#2A2015;
  --ink-soft:#5C4C3C;
  --gold:#A8703A;
  --gold-soft:#E3C592;
  --rust:#A8592C;
  --taupe:#8A7A68;
  --cream:#F6EEDF;
  --cream-dim:#E4D7BE;
  --ease:cubic-bezier(.22,.61,.36,1);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{background:var(--paper); color:var(--ink); font-family:'EB Garamond',serif; font-weight:400; overflow-x:hidden;}
.serif, .display{font-family:'Cormorant Garamond',serif;}
img{max-width:100%;}

.grain{position:fixed; inset:0; pointer-events:none; z-index:999; opacity:.025; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}

/* NAV */
header.site-header{position:sticky; top:0; left:0; right:0; z-index:100; display:flex; align-items:center; justify-content:space-between; padding:24px 5vw; background:rgba(246,238,223,.92); backdrop-filter:blur(6px); border-bottom:1px solid rgba(42,32,21,.08);}
.logo{font-family:'Cormorant Garamond',serif; font-size:19px; letter-spacing:.28em; color:var(--ink); text-decoration:none; font-weight:500;}
nav.main-nav ul{list-style:none; display:flex; gap:34px;}
nav.main-nav a{color:var(--ink); text-decoration:none; font-size:12.5px; letter-spacing:.14em; text-transform:uppercase; font-weight:500; font-family:'Cormorant Garamond',serif; opacity:.72; transition:opacity .3s;}
nav.main-nav a:hover, nav.main-nav a.current{opacity:1;}
.nav-right{display:flex; align-items:center; gap:26px;}
.lang-toggle{display:flex; gap:8px; font-size:11.5px; letter-spacing:.1em; font-family:'Cormorant Garamond',serif;}
.lang-toggle a{padding:2px 4px; transition:opacity .3s; text-decoration:none; color:var(--ink);}
.lang-toggle a.active{opacity:1; border-bottom:1px solid var(--gold);}
.lang-toggle a:not(.active){opacity:.45;}
.menu-btn{display:none; flex-direction:column; gap:5px; cursor:pointer; background:none; border:none;}
.menu-btn span{width:22px; height:1px; background:var(--ink);}

/* SECTION LABEL */
.section-label{display:flex; align-items:center; gap:16px; font-size:12.5px; letter-spacing:.24em; text-transform:uppercase; color:var(--gold); margin-bottom:44px; font-family:'Cormorant Garamond',serif; font-weight:600;}
.section-label::after{content:''; flex:1; height:1px; background:var(--taupe); opacity:.35;}
.section-label.center{justify-content:center;}
.section-label.center::after{display:none;}
.section-label.on-dark{color:var(--gold-soft);}

/* BUTTONS */
.btn-link{display:inline-flex; align-items:center; gap:12px; color:var(--rust); text-decoration:none; font-size:12.5px; letter-spacing:.16em; text-transform:uppercase; width:fit-content; font-family:'Cormorant Garamond',serif; font-weight:600; border-bottom:1px solid rgba(168,89,44,.4); padding-bottom:6px; transition:border-color .3s, gap .3s;}
.btn-link:hover{border-color:var(--rust); gap:16px;}
.btn-link.on-dark{color:var(--gold-soft); border-bottom-color:rgba(227,197,146,.4);}
.btn-link.on-dark:hover{border-color:var(--gold-soft);}
.cta-btn{display:inline-block; padding:19px 50px; border:1px solid var(--ink); color:var(--ink); text-decoration:none; font-size:12.5px; letter-spacing:.18em; text-transform:uppercase; transition:background .35s var(--ease), color .35s var(--ease); background:none; cursor:pointer; font-family:'Cormorant Garamond',serif; font-weight:600;}
.cta-btn:hover{background:var(--ink); color:var(--paper);}
.cta-btn.on-dark{border-color:var(--gold-soft); color:var(--cream);}
.cta-btn.on-dark:hover{background:var(--gold-soft); color:var(--umber);}

/* PAGE HERO */
.page-hero{position:relative; height:70vh; min-height:460px; display:flex; align-items:flex-end; overflow:hidden;}
.page-hero img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:brightness(.62) saturate(1.02);}
.page-hero::after{content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(20,14,8,.3) 0%, rgba(20,14,8,.1) 32%, rgba(20,14,8,.78) 100%);}
.page-hero-content{position:relative; z-index:2; padding:0 5vw 6vw; color:var(--cream);}
.page-hero-eyebrow{font-size:12.5px; letter-spacing:.28em; text-transform:uppercase; color:var(--gold-soft); margin-bottom:16px; font-family:'Cormorant Garamond',serif; font-weight:600;}
.page-hero h1{font-family:'Cormorant Garamond',serif; font-weight:500; font-size:clamp(38px,6.6vw,90px); line-height:1;}

/* FOOTER */
footer.site-footer{padding:60px 5vw 40px; border-top:1px solid rgba(42,32,21,.1); display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:30px;}
footer .logo{font-size:16px;}
footer ul{list-style:none; display:flex; gap:26px; flex-wrap:wrap;}
footer a{color:var(--ink-soft); text-decoration:none; font-size:12px; letter-spacing:.1em; text-transform:uppercase; font-family:'Cormorant Garamond',serif; font-weight:500;}
footer a:hover{color:var(--rust);}
.foot-meta{font-size:11px; color:var(--taupe); letter-spacing:.05em;}

/* HOMEPAGE HERO */
.hero{position:relative; height:100vh; min-height:640px; display:flex; align-items:flex-end; overflow:hidden;}
.hero img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:brightness(.68) saturate(1.02);}
.hero::after{content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(20,14,8,.2) 0%, rgba(20,14,8,0) 32%, rgba(20,14,8,.55) 78%, rgba(20,14,8,.85) 100%);}
.hero-content{position:relative; z-index:2; padding:0 5vw 7vw; width:100%; display:flex; align-items:flex-end; justify-content:space-between; gap:40px; color:var(--cream);}
.hero-eyebrow{font-size:12.5px; letter-spacing:.28em; text-transform:uppercase; color:var(--gold-soft); margin-bottom:18px; font-family:'Cormorant Garamond',serif; font-weight:600;}
.hero h1{font-family:'Cormorant Garamond',serif; font-weight:500; font-size:clamp(56px,9.5vw,158px); line-height:.94;}
.hero-sub{max-width:360px; font-size:16px; line-height:1.65; color:var(--cream-dim); padding-bottom:8px; font-family:'EB Garamond',serif;}
.scroll-cue{position:absolute; bottom:28px; left:5vw; z-index:2; font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--cream); opacity:.65; display:flex; align-items:center; gap:10px; font-family:'Cormorant Garamond',serif;}
.scroll-cue::after{content:''; width:1px; height:34px; background:var(--cream); opacity:.5;}

/* INTRO */
.intro{padding:150px 5vw 130px; max-width:1100px; margin:0 auto; text-align:center;}
.intro p{font-family:'Cormorant Garamond',serif; font-weight:400; font-size:clamp(24px,3.3vw,42px); line-height:1.45; color:var(--ink);}
.intro em{font-style:italic; color:var(--rust);}
.intro .lead{font-size:13px; letter-spacing:.24em; text-transform:uppercase; color:var(--gold); margin-bottom:28px; font-family:'Cormorant Garamond',serif; font-weight:600;}

/* WEDDINGS TEASER / GRID */
.weddings{padding:0 5vw 150px;}
.wed-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:2px;}
.wed-card{position:relative; overflow:hidden; height:76vh; min-height:500px;}
.wed-card:nth-child(2){height:auto; display:flex; align-items:flex-end;}
.wed-card img{width:100%; height:100%; object-fit:cover; display:block; transition:transform 1.1s var(--ease); filter:brightness(.9) saturate(1.02);}
.wed-card:hover img{transform:scale(1.04);}
.wed-caption{position:absolute; left:32px; bottom:32px; z-index:2; color:var(--cream);}
.wed-caption .num{font-size:12px; color:var(--gold-soft); letter-spacing:.2em; margin-bottom:8px; display:block; font-family:'Cormorant Garamond',serif;}
.wed-caption h3{font-family:'Cormorant Garamond',serif; font-weight:500; font-size:clamp(22px,2.6vw,34px);}
.wed-caption p{font-size:13px; color:var(--cream-dim); margin-top:4px; font-family:'EB Garamond',serif;}
.wed-side{background:var(--paper-deep); padding:60px 44px; display:flex; flex-direction:column; justify-content:center; gap:26px;}
.wed-side h2{font-family:'Cormorant Garamond',serif; font-weight:500; font-style:italic; font-size:clamp(30px,3vw,46px); line-height:1.15; color:var(--ink);}
.wed-side p{font-size:15px; line-height:1.75; color:var(--ink-soft); max-width:38ch; font-family:'EB Garamond',serif;}

/* WEDDINGS ARCHIVE GRID (dedicated Weddings page) */
.w-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:2px; padding:0 0 2px;}
.w-card{position:relative; overflow:hidden; height:62vh; min-height:420px; display:block; text-decoration:none; color:inherit;}
.w-card img{width:100%; height:100%; object-fit:cover; display:block; transition:transform 1.1s var(--ease); filter:brightness(.86) saturate(1.02);}
.w-card:hover img{transform:scale(1.04);}
.w-caption{position:absolute; left:32px; bottom:32px; z-index:2; color:var(--cream);}
.w-caption .loc{font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-soft); display:block; margin-bottom:8px; font-family:'Cormorant Garamond',serif;}
.w-caption h3{font-family:'Cormorant Garamond',serif; font-weight:500; font-size:clamp(22px,2.4vw,32px);}
.w-caption p{font-size:12.5px; color:var(--cream-dim); margin-top:4px; font-family:'EB Garamond',serif;}

/* ABOUT TEASER + PAGE */
.about-teaser{padding:0 5vw 150px; display:grid; grid-template-columns:.85fr 1.15fr; gap:70px; align-items:center;}
.about-img{position:relative; overflow:hidden;}
.about-img img{width:100%; display:block;}
.about-text h2{font-family:'Cormorant Garamond',serif; font-weight:500; font-size:clamp(30px,3.3vw,48px); line-height:1.2; margin-bottom:26px; color:var(--ink);}
.about-text h2 em{font-style:italic; color:var(--rust);}
.about-text p{font-size:16px; line-height:1.85; color:var(--ink-soft); margin-bottom:18px; max-width:52ch; font-family:'EB Garamond',serif;}

.about-intro{max-width:900px; margin:0 auto; padding:120px 6vw 50px; text-align:center;}
.about-intro p{font-family:'Cormorant Garamond',serif; font-style:italic; font-weight:400; font-size:clamp(24px,3.4vw,42px); line-height:1.5; color:var(--ink);}
.about-intro em{color:var(--rust); font-style:italic;}
.portrait-block{display:grid; grid-template-columns:.8fr 1.2fr; gap:60px; align-items:center; max-width:1200px; margin:0 auto; padding:60px 6vw 100px;}
.portrait-block img{width:100%; display:block; border-radius:2px;}
.portrait-block .location{font-size:12.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); margin-bottom:16px; font-family:'Cormorant Garamond',serif; font-weight:600;}
.portrait-block p{font-size:16px; line-height:1.85; color:var(--ink-soft); margin-bottom:16px; max-width:48ch; font-family:'EB Garamond',serif;}
.story{max-width:740px; margin:0 auto; padding:80px 6vw;}
.story p{font-size:17px; line-height:1.95; color:var(--ink-soft); margin-bottom:26px; font-family:'EB Garamond',serif;}
.story p:first-of-type::first-letter{font-family:'Cormorant Garamond',serif; font-size:64px; float:left; line-height:.75; margin:8px 12px 0 0; color:var(--rust); font-weight:500;}
.split-block{display:grid; grid-template-columns:1fr 1fr; gap:2px; align-items:stretch;}
.split-block img{width:100%; height:100%; object-fit:cover; display:block;}
.split-text{background:var(--umber); padding:70px 60px; display:flex; align-items:center;}
.split-text p{font-family:'Cormorant Garamond',serif; font-style:italic; font-size:clamp(20px,2.2vw,28px); line-height:1.6; color:var(--cream);}
.split-text em{color:var(--gold-soft);}
.values{padding:110px 6vw; max-width:980px; margin:0 auto;}
.value-row{display:grid; grid-template-columns:.3fr 1fr; gap:30px; padding:34px 0; border-top:1px solid rgba(42,32,21,.12);}
.value-row:last-child{border-bottom:1px solid rgba(42,32,21,.12);}
.value-row .num{font-family:'Cormorant Garamond',serif; font-style:italic; color:var(--rust); font-size:22px;}
.value-row p{font-size:16px; line-height:1.85; color:var(--ink-soft); max-width:56ch; font-family:'EB Garamond',serif;}

/* TESTIMONIALS */
.testimonials{padding:140px 5vw; background:var(--umber); text-align:center; color:var(--cream);}
.quote{max-width:760px; margin:0 auto 36px; font-family:'Cormorant Garamond',serif; font-style:italic; font-weight:400; font-size:clamp(21px,2.6vw,32px); line-height:1.6; color:var(--cream);}
.quote-by{font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-soft); font-family:'Cormorant Garamond',serif;}
.t-entry{display:grid; grid-template-columns:.9fr 1.1fr; gap:2px; margin-bottom:2px;}
.t-entry:nth-child(even){direction:rtl;}
.t-entry:nth-child(even) > *{direction:ltr;}
.t-entry img{width:100%; height:100%; object-fit:cover; display:block; min-height:460px;}
.t-text{background:var(--umber); padding:70px 60px; display:flex; flex-direction:column; justify-content:center; gap:22px;}
.t-text .quote{font-size:clamp(19px,2vw,25px); line-height:1.7; margin:0;}
.t-text .by{font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-soft); font-family:'Cormorant Garamond',serif;}

/* STUDIO */
.studio{position:relative; height:86vh; min-height:580px; display:flex; align-items:center; overflow:hidden;}
.studio img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:brightness(.52) saturate(1.05);}
.studio-content{position:relative; z-index:2; padding:0 5vw; max-width:640px; color:var(--cream);}
.studio h2{font-family:'Cormorant Garamond',serif; font-weight:500; font-size:clamp(34px,4.6vw,64px); line-height:1.1; margin-bottom:22px;}
.studio h2 em{font-style:italic; color:var(--gold-soft);}
.studio p{font-size:16px; line-height:1.8; color:var(--cream-dim); margin-bottom:30px; max-width:46ch; font-family:'EB Garamond',serif;}
.full-frame{position:relative; height:88vh; min-height:560px; overflow:hidden;}
.full-frame img{width:100%; height:100%; object-fit:cover; display:block;}
.capabilities{padding:120px 6vw; max-width:1080px; margin:0 auto;}
.cap-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:50px 40px; margin-top:46px;}
.cap-item h3{font-family:'Cormorant Garamond',serif; font-weight:500; font-style:italic; font-size:24px; color:var(--rust); margin-bottom:14px;}
.cap-item p{font-size:15px; line-height:1.8; color:var(--ink-soft); font-family:'EB Garamond',serif;}

/* CTA / CONTACT */
.cta{padding:160px 5vw; text-align:center;}
.cta .lead{font-size:13px; letter-spacing:.24em; text-transform:uppercase; color:var(--gold); margin-bottom:24px; font-family:'Cormorant Garamond',serif; font-weight:600;}
.cta h2{font-family:'Cormorant Garamond',serif; font-weight:500; font-style:italic; font-size:clamp(34px,6vw,84px); line-height:1.08; margin-bottom:44px; color:var(--ink);}
.contact-wrap{display:grid; grid-template-columns:.9fr 1.1fr; min-height:100vh;}
.contact-visual{position:relative; overflow:hidden;}
.contact-visual img{width:100%; height:100%; object-fit:cover; display:block;}
.contact-form-side{padding:140px 6vw 80px; display:flex; flex-direction:column; justify-content:center;}
.contact-form-side .lead{font-size:12.5px; letter-spacing:.24em; text-transform:uppercase; color:var(--gold); margin-bottom:20px; font-family:'Cormorant Garamond',serif; font-weight:600;}
.contact-form-side h1{font-family:'Cormorant Garamond',serif; font-weight:500; font-style:italic; font-size:clamp(30px,4vw,52px); line-height:1.2; margin-bottom:18px; color:var(--ink);}
.contact-form-side .intro-line{font-size:16px; line-height:1.8; color:var(--ink-soft); max-width:48ch; margin-bottom:30px; font-family:'EB Garamond',serif;}
.contact-form-side .loc-note{font-size:13px; color:var(--taupe); margin-bottom:20px; font-family:'EB Garamond',serif; font-style:italic;}
.direct{margin-top:40px; padding-top:34px; border-top:1px solid rgba(42,32,21,.12);}
.direct p{font-size:13.5px; color:var(--ink-soft); font-family:'EB Garamond',serif;}
.direct a{color:var(--rust); text-decoration:none;}

/* GALLERY */
.g-intro{max-width:760px; margin:0 auto; padding:120px 6vw 60px; text-align:center;}
.g-intro p{font-family:'Cormorant Garamond',serif; font-style:italic; font-size:clamp(22px,3vw,36px); line-height:1.5; color:var(--ink);}
.g-filters{display:flex; justify-content:center; gap:30px; padding:0 6vw 50px; flex-wrap:wrap;}
.g-filter{background:none; border:none; cursor:pointer; font-family:'Cormorant Garamond',serif; font-weight:600; font-size:12.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-soft); padding-bottom:6px; border-bottom:1px solid transparent; transition:color .25s, border-color .25s; text-decoration:none;}
.g-filter:hover{color:var(--ink);}
.g-filter.active{color:var(--rust); border-bottom-color:var(--rust);}
.g-grid{columns:3 280px; column-gap:2px; padding:0 2px 2px; max-width:1600px; margin:0 auto;}
.g-item{break-inside:avoid; margin-bottom:2px; position:relative; overflow:hidden; cursor:pointer; background:var(--paper-deep);}
.g-item img{width:100%; display:block; transition:transform .6s var(--ease); loading:lazy;}
.g-item:hover img{transform:scale(1.03);}
.g-empty-note{text-align:center; padding:60px 6vw; color:var(--taupe); font-family:'EB Garamond',serif; font-style:italic; font-size:15px;}
.lightbox{position:fixed; inset:0; z-index:1000; background:rgba(20,14,8,.96); display:none; align-items:center; justify-content:center; padding:5vw;}
.lightbox.open{display:flex;}
.lightbox img{max-width:100%; max-height:88vh; display:block; box-shadow:0 20px 60px rgba(0,0,0,.5);}
.lightbox-close, .lightbox-prev, .lightbox-next{position:absolute; background:none; border:none; color:var(--cream); cursor:pointer; font-family:'Cormorant Garamond',serif; font-size:15px; letter-spacing:.14em; text-transform:uppercase; opacity:.75; transition:opacity .25s;}
.lightbox-close:hover, .lightbox-prev:hover, .lightbox-next:hover{opacity:1;}
.lightbox-close{top:28px; right:5vw;}
.lightbox-prev{left:5vw; top:50%; transform:translateY(-50%);}
.lightbox-next{right:5vw; top:50%; transform:translateY(-50%);}
.lightbox-count{position:absolute; bottom:28px; left:50%; transform:translateX(-50%); color:var(--cream-dim); font-size:12px; letter-spacing:.14em; font-family:'Cormorant Garamond',serif;}

/* WEDDING STORY (single-wedding.php) */
.story-hero{height:100vh; min-height:640px;}
.story-meta{display:flex; gap:40px; margin-top:20px; flex-wrap:wrap;}
.story-meta div{font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--cream-dim); font-family:'EB Garamond',serif;}
.story-meta span{display:block; color:var(--gold-soft); font-size:11px; letter-spacing:.2em; margin-bottom:6px; font-family:'Cormorant Garamond',serif;}
.story-intro{max-width:760px; margin:0 auto; padding:110px 6vw 80px; text-align:center;}
.story-intro p{font-family:'Cormorant Garamond',serif; font-style:italic; font-size:clamp(22px,3vw,34px); line-height:1.55; color:var(--ink);}
.wedding-gallery{display:grid; grid-template-columns:repeat(2,1fr); gap:2px;}
.wedding-gallery img{width:100%; display:block;}
.wedding-gallery .full{grid-column:1 / -1;}
.closing{position:relative; height:86vh; min-height:540px; display:flex; align-items:flex-end; overflow:hidden; margin-top:2px;}
.closing img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:brightness(.58) saturate(1.02);}
.closing-content{position:relative; z-index:2; padding:0 6vw 6vw; max-width:640px;}
.closing-content p{font-family:'Cormorant Garamond',serif; font-style:italic; font-size:clamp(22px,3.4vw,40px); line-height:1.4; color:var(--cream);}
.next-wedding{padding:90px 6vw; text-align:center;}
.next-wedding .label{font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); margin-bottom:18px; font-family:'Cormorant Garamond',serif; font-weight:600;}

/* FORM */
form.contact-form{display:flex; flex-direction:column; gap:26px; max-width:520px;}
.field-row{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
form.contact-form label{display:block; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--taupe); margin-bottom:8px; font-family:'Cormorant Garamond',serif; font-weight:600;}
form.contact-form input, form.contact-form select, form.contact-form textarea{width:100%; background:none; border:none; border-bottom:1px solid rgba(42,32,21,.25); color:var(--ink); font-family:'EB Garamond',serif; font-size:16px; padding:8px 0 12px; outline:none; transition:border-color .3s;}
form.contact-form input:focus, form.contact-form select:focus, form.contact-form textarea:focus{border-color:var(--rust);}
form.contact-form textarea{resize:vertical; min-height:110px;}

@media (max-width:860px){
  nav.main-nav ul{display:none;} .menu-btn{display:flex;}
  .hero-content{flex-direction:column; align-items:flex-start; gap:22px;} .hero-sub{max-width:100%;}
  .wed-grid{grid-template-columns:1fr;} .wed-card{height:58vh;}
  .about-teaser{grid-template-columns:1fr; gap:38px;} .intro{padding:110px 6vw 80px;} .studio-content{padding:0 6vw;}
  .w-grid{grid-template-columns:1fr;} .w-card{height:54vh;}
  .portrait-block{grid-template-columns:1fr; gap:34px;}
  .split-block{grid-template-columns:1fr;} .split-text{padding:50px 30px;}
  .value-row{grid-template-columns:1fr; gap:10px;}
  .t-entry, .t-entry:nth-child(even){grid-template-columns:1fr; direction:ltr;} .t-text{padding:50px 30px;}
  .cap-grid{grid-template-columns:1fr;}
  .contact-wrap{grid-template-columns:1fr;} .contact-visual{height:42vh;} .contact-form-side{padding:70px 6vw;} .field-row{grid-template-columns:1fr;}
  .g-grid{columns:2 160px;}
  .gallery, .wedding-gallery{grid-template-columns:1fr;}
}
@media (prefers-reduced-motion: reduce){ *{animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important;} }
a:focus-visible{outline:1px solid var(--gold); outline-offset:4px;}


/* ---------------------------------------------------------------
   WPFORMS INTEGRATION — Contact page
   Overrides WPForms' default (narrow) field sizing so the form
   matches the site's large, editorial scale. Scoped to
   .contact-form-side so it never affects any other WPForms usage.
--------------------------------------------------------------- */
.contact-form-side .wpforms-container{ max-width:100% !important; margin:0 !important; }
.contact-form-side .wpforms-form{ display:block !important; }
.contact-form-side .wpforms-field{ padding:0 !important; margin:0 0 40px 0 !important; max-width:100% !important; }
.contact-form-side .wpforms-field-label{
  font-family:'Cormorant Garamond',serif !important;
  font-size:13px !important;
  letter-spacing:.16em !important;
  text-transform:uppercase !important;
  color:var(--taupe) !important;
  font-weight:600 !important;
  margin-bottom:12px !important;
}
.contact-form-side .wpforms-field-sublabel{
  font-family:'EB Garamond',serif !important;
  font-size:13px !important;
  color:var(--taupe) !important;
  margin-top:8px !important;
}
.contact-form-side .wpforms-required-label,
.contact-form-side .wpforms-field-required{ color:var(--rust) !important; }
.contact-form-side .wpforms-field-row{ display:flex !important; gap:32px !important; }
.contact-form-side .wpforms-field-row .wpforms-field-row-block{ flex:1 1 0 !important; max-width:100% !important; }
.contact-form-side input[type=text],
.contact-form-side input[type=email],
.contact-form-side input[type=tel],
.contact-form-side input[type=url],
.contact-form-side input[type=number],
.contact-form-side select,
.contact-form-side textarea{
  width:100% !important;
  max-width:100% !important;
  background:none !important;
  border:none !important;
  border-bottom:1.5px solid rgba(42,32,21,.28) !important;
  border-radius:0 !important;
  color:var(--ink) !important;
  font-family:'EB Garamond',serif !important;
  font-size:19px !important;
  line-height:1.5 !important;
  padding:16px 6px !important;
  box-shadow:none !important;
  transition:border-color .3s;
}
.contact-form-side input[type=text]:focus,
.contact-form-side input[type=email]:focus,
.contact-form-side select:focus,
.contact-form-side textarea:focus{
  border-color:var(--rust) !important;
  outline:none !important;
  box-shadow:none !important;
}
.contact-form-side textarea{
  min-height:200px !important;
  resize:vertical !important;
}
.contact-form-side .wpforms-field-textarea textarea{ min-height:200px !important; }
.contact-form-side .wpforms-submit-container{ margin-top:16px !important; }
.contact-form-side button.wpforms-submit{
  display:inline-block !important;
  padding:20px 54px !important;
  border:1px solid var(--ink) !important;
  background:none !important;
  color:var(--ink) !important;
  font-family:'Cormorant Garamond',serif !important;
  font-size:13px !important;
  letter-spacing:.2em !important;
  text-transform:uppercase !important;
  font-weight:600 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  transition:background .35s var(--ease), color .35s var(--ease) !important;
  cursor:pointer;
}
.contact-form-side button.wpforms-submit:hover{
  background:var(--ink) !important;
  color:var(--paper) !important;
}
.contact-form-side .wpforms-error-container,
.contact-form-side label.wpforms-error{
  font-family:'EB Garamond',serif !important;
  color:var(--rust) !important;
  font-size:14px !important;
  margin-top:8px !important;
}

@media (max-width:960px){
  .contact-form-side .wpforms-field-row{ flex-direction:column !important; gap:0 !important; }
  .contact-form-side .wpforms-field-row .wpforms-field-row-block{ margin-bottom:28px !important; }
  .contact-form-side input[type=text],
  .contact-form-side input[type=email],
  .contact-form-side textarea{ font-size:17px !important; padding:14px 4px !important; }
  .contact-form-side textarea{ min-height:160px !important; }
  .contact-form-side button.wpforms-submit{ width:100% !important; text-align:center !important; padding:18px !important; }
}


/* Fix: WPForms was collapsing to fit-content width instead of
   stretching to fill its flex parent. Forcing explicit width
   (not just max-width) at every wrapper level solves it. */
.contact-form-side .wpforms-container{ width:100% !important; max-width:100% !important; flex:none !important; }
.contact-form-side .wpforms-form{ width:100% !important; max-width:100% !important; }
.contact-form-side .wpforms-field-container{ width:100% !important; }
.contact-form-side .wpforms-field-medium,
.contact-form-side .wpforms-field-small,
.contact-form-side .wpforms-field-large{ max-width:100% !important; }


/* Fix: .w-intro was missing (dropped during the HTML-to-WordPress
   conversion) — the Weddings archive intro paragraph and empty-state
   message were rendering unstyled. Matches .g-intro's pattern. */
.w-intro{max-width:760px; margin:0 auto; padding:120px 6vw 80px; text-align:center;}
.w-intro p{font-family:'Cormorant Garamond',serif; font-style:italic; font-size:clamp(22px,3vw,36px); line-height:1.5; color:var(--ink);}


/* Fix: .studio-intro and .t-intro were also missing (same dropped-
   during-conversion issue as .w-intro). Same centered-italic pattern. */
.studio-intro{max-width:820px; margin:0 auto; padding:120px 6vw 90px; text-align:center;}
.studio-intro p{font-family:'Cormorant Garamond',serif; font-style:italic; font-weight:400; font-size:clamp(24px,3.4vw,42px); line-height:1.5; color:var(--ink);}
.studio-intro em{color:var(--rust);}
.t-intro{max-width:760px; margin:0 auto; padding:120px 6vw 80px; text-align:center;}
.t-intro p{font-family:'Cormorant Garamond',serif; font-style:italic; font-size:clamp(22px,3vw,36px); line-height:1.5; color:var(--ink);}
