/* Meet Me in Casablanca — site styles. Fonts: EB Garamond and DM Sans (SIL OFL 1.1, see assets/fonts/LICENSE.txt). */
@font-face{font-family:CasablancaSerif;src:url('../fonts/eb-garamond.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:CasablancaSans;src:url('../fonts/dm-sans.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
:root{--ink:#20231e;--deep:#171b17;--paper:#efeee7;--paper-dark:#e5e4da;--gold:#c5ad62;--quiet:#63675b;--muted:#b9bcaf;--line:#c8cbbf;--serif:CasablancaSerif,Georgia,serif;--sans:CasablancaSans,Arial,sans-serif;--gutter:clamp(24px,6vw,104px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;font-family:var(--sans);font-weight:400;font-size:16px;line-height:1.7;color:var(--ink);background:var(--paper)}[hidden]{display:none!important}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:400}h2,h3{font-family:var(--serif)}p+p{margin-top:22px}a{color:inherit}button,input,textarea{font:inherit}button{cursor:pointer}a,button,summary{-webkit-tap-highlight-color:transparent;touch-action:manipulation}a,button,input,textarea,summary{outline-offset:5px}:focus-visible{outline:2px solid #97772c}::selection{background:var(--gold);color:var(--ink)}img{max-width:100%;display:block}svg{display:block}input,textarea{border-radius:0}.wrap{max-width:1536px;margin-inline:auto;padding-inline:var(--gutter)}.label{font-size:12px;letter-spacing:.16em;line-height:1.5;text-transform:uppercase}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip{position:fixed;z-index:50;top:12px;left:12px;background:var(--paper);padding:10px 18px;transform:translateY(-180%)}.skip:focus{transform:none}.text-link{display:inline-block;text-decoration:none;border-bottom:1px solid currentColor;padding:8px 0 5px;font-size:14px;line-height:1.4}.text-link:hover{opacity:.7}.button{display:inline-flex;align-items:center;justify-content:center;padding:13px 26px;min-height:50px;border:1px solid var(--ink);background:var(--ink);color:var(--paper);font-size:14px;text-decoration:none;transition:background .2s,color .2s}.button:hover{background:#394134}.button.secondary{background:transparent;color:var(--ink);border-color:#949a88}.button.secondary:hover{background:var(--paper-dark)}
.header{padding:18px var(--gutter);min-height:86px;display:flex;justify-content:space-between;gap:30px;align-items:center;background:var(--paper);border-bottom:1px solid var(--line)}.header-brand{color:var(--ink);text-decoration:none;display:block;width:200px}.header-brand svg{width:100%;height:auto;filter:brightness(0) opacity(.83)}.nav{display:flex;align-items:center;gap:38px}.nav a{font-size:14px;text-decoration:none;padding-block:10px}.nav a:hover{color:#7d662e}.nav a:last-child{border-bottom:1px solid var(--ink);padding-block:8px}.menu-toggle{display:none;border:0;background:transparent;color:var(--ink);padding:10px 0;min-height:44px;font-size:14px}.hero{position:relative;background:var(--deep);color:var(--paper);height:min(790px,calc(100svh - 86px));min-height:570px;overflow:hidden}.hero-background{width:100%;height:100%;object-fit:cover;object-position:50% 48%}.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,14,11,.28),rgba(12,14,11,.48) 45%,rgba(12,14,11,.36) 70%,rgba(12,14,11,.64))}.hero-inner{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:50px var(--gutter)}.hero-wordmark{color:#d4b959;width:min(77%,1000px);filter:drop-shadow(0 2px 15px rgba(0,0,0,.16))}.hero-wordmark svg{width:100%;height:auto}
.studio{padding-block:116px 122px}.intro-grid{display:grid;grid-template-columns:1fr 3fr;gap:40px}.section-label{padding-top:10px;color:var(--quiet)}.intro-main{max-width:910px}.intro-main h2{font-size:clamp(35px,4.05vw,62px);line-height:1.13;letter-spacing:-.025em}.intro-main p{font-size:clamp(20px,2.05vw,29px);line-height:1.5;font-family:var(--serif);max-width:770px;margin-top:26px;color:#4d5446}.intro-main .studio-scope{font-family:var(--sans);font-size:16px;line-height:1.8;max-width:710px;margin-top:24px}.intro-main .text-link{margin-top:25px;font-family:var(--sans);font-size:14px}
.films{background:var(--deep);color:var(--paper);padding-block:90px}.section-heading{display:flex;justify-content:space-between;align-items:baseline;gap:25px;margin-bottom:37px}.section-heading h2{font-size:clamp(40px,5vw,64px);line-height:1.1}.section-heading p{font-size:14px;color:var(--muted)}.film-grid{display:grid;grid-template-columns:1fr 1fr;gap:45px 28px}.film-link{display:block;color:inherit;text-decoration:none}.film-poster{position:relative;aspect-ratio:16/10;overflow:hidden;background:#2d332b}.film-poster img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.film-link:hover img{transform:scale(1.025)}.film-play{position:absolute;bottom:19px;left:19px;padding:8px 13px;color:var(--paper);background:rgba(20,24,18,.85);font-size:14px}.film-caption{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px 15px;align-items:baseline;padding-top:16px}.film-caption span{white-space:nowrap}.film-caption h3{font-size:27px}.film-caption span{font-size:13px;color:var(--muted)}
.approach{background:var(--paper-dark);padding-top:0}.approach-lead{display:grid;grid-template-columns:1fr 1.65fr;gap:10%;align-items:start;max-width:1536px;margin-inline:auto;padding:86px var(--gutter) 0}.approach-heading .label{color:var(--quiet);margin-bottom:22px}.approach-heading h2{font-size:clamp(40px,4.6vw,63px);line-height:1.08;letter-spacing:-.025em}.approach-intro{font-family:var(--serif);font-size:clamp(27px,2.65vw,38px);line-height:1.4;max-width:760px}.process{padding-block:66px 78px;display:grid;grid-template-columns:repeat(3,1fr);gap:50px}.process article{border-top:1px solid #afb49f;padding-top:24px}.process-number{display:block;font-size:12px;color:var(--quiet);margin-bottom:16px;letter-spacing:.12em}.process h3{font-size:32px;line-height:1.2;margin-bottom:16px}.process p{font-size:16px;line-height:1.85;color:#505748}.process p+p{margin-top:17px}
.details-section{padding-block:106px 116px}.details-grid{display:grid;grid-template-columns:1fr 1.65fr;gap:10%}.details-heading .label{color:var(--quiet);margin-bottom:22px}.details-heading h2{font-size:clamp(40px,4.6vw,63px);line-height:1.08;letter-spacing:-.02em}.faq{border-top:1px solid var(--line)}details{border-bottom:1px solid var(--line)}summary{list-style:none;cursor:pointer;font-size:17px;line-height:1.55;display:flex;justify-content:space-between;gap:24px;padding:23px 0}summary::-webkit-details-marker{display:none}summary::after{content:'+';font-size:23px;line-height:1.1;flex-shrink:0;color:var(--quiet)}details[open] summary::after{content:'−'}details p{font-size:16px;line-height:1.85;color:#505748;padding:0 35px 26px 0}
.inquiries{background:var(--ink);color:var(--paper);padding-block:91px 98px}.inquiry-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:11%}.inquiry-intro .label{color:var(--gold);margin-bottom:26px}.inquiry-intro h2{font-size:clamp(54px,6.2vw,87px);line-height:1;letter-spacing:-.035em;margin-bottom:25px}.inquiry-intro>p{font-family:var(--serif);font-size:28px;line-height:1.45;max-width:410px}.inquiry-intro .location{font-size:13px;line-height:1.6;color:var(--muted);margin-top:58px;letter-spacing:.04em}.inquiry-form{display:grid;grid-template-columns:1fr 1fr;gap:24px 26px}.field{min-width:0}.field.wide,.form-actions{grid-column:1/-1}label{font-size:14px;line-height:1.5;display:block;color:#eceee3;margin-bottom:9px}label span{color:var(--muted);font-size:12px}input,textarea{width:100%;max-width:100%;min-width:0;min-height:48px;border:0;border-bottom:1px solid #7b826d;background:rgba(239,238,231,.035);padding:9px 10px;font-size:16px;color:var(--paper);color-scheme:dark}textarea{min-height:100px;resize:vertical}input::placeholder,textarea::placeholder{color:#a8ad9c}input:focus,textarea:focus{border-color:var(--gold)}.inquiries :focus-visible{outline-color:var(--gold)}.inquiries .button{color:var(--ink);background:var(--gold);border-color:var(--gold)}.inquiries .button:hover{background:#d6bf77}.form-actions{padding-top:4px}.form-note{font-size:13px!important;line-height:1.6;color:var(--muted);max-width:460px;margin-top:16px}.form-note.preview{border-left:1px solid #84886c;padding-left:14px}.footer{background:var(--deep);color:var(--muted);padding:43px var(--gutter) 32px}.footer-main{display:grid;grid-template-columns:1.4fr 1fr auto;align-items:center;gap:35px}.footer-logo{color:var(--gold);width:240px;max-width:100%}.footer-logo svg{width:100%}.footer-main p{font-size:14px;line-height:1.7}.footer-main .text-link{font-size:14px}.footer-bottom{border-top:1px solid #424939;margin-top:35px;padding-top:18px;display:flex;justify-content:space-between;gap:20px;font-size:12px;line-height:1.7}.footer-bottom p{max-width:660px}.footer-bottom p+p{margin-top:0}
.inquiry-dialog{width:min(620px,calc(100% - 32px));max-height:calc(100svh - 40px);background:var(--paper);border:1px solid #bdc2b0;padding:34px;color:var(--ink);overflow:auto}.inquiry-dialog::backdrop{background:rgba(15,20,12,.7)}.dialog-top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.dialog-top h2{font-size:35px;line-height:1.1}.dialog-close{border:0;background:transparent;color:var(--ink);font-size:14px;min-height:44px;padding:5px}.inquiry-dialog p{font-size:14px;line-height:1.65;color:var(--quiet)}.inquiry-dialog textarea{margin-top:20px;min-height:240px;font-family:var(--sans);font-size:15px;line-height:1.75;background:#f9f8f2;color:var(--ink);border:1px solid #c4c7b9;color-scheme:light}.dialog-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}.dialog-status{min-height:1.6em;margin-top:16px!important}.no-script{background:var(--gold);color:var(--ink);padding:14px var(--gutter);font-size:14px}
@media(max-width:1000px){.header-brand{width:180px}.nav{gap:24px}.hero-wordmark{width:90%}.hero{min-height:520px;height:75svh}.studio{padding-block:80px}.intro-grid{grid-template-columns:1fr 3fr;gap:25px}.approach-lead{gap:7%;padding-top:70px}.process{gap:30px}.process h3{font-size:29px}.details-grid{gap:7%}.inquiry-grid{gap:7%}.inquiry-intro>p{font-size:25px}.footer-logo{width:195px}}
@media(max-width:720px){:root{--gutter:25px}.header{min-height:78px;padding-block:17px;position:relative;z-index:5}.header-brand{width:165px}.menu-toggle{display:block}.nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--paper);border-bottom:1px solid var(--line);padding:10px var(--gutter) 20px;flex-direction:column;align-items:stretch;gap:0}.nav.open{display:flex}.nav a{font-size:16px;padding:12px 0}.nav a:last-child{border:0;padding:12px 0}.hero{height:calc(83svh - 78px);min-height:490px;max-height:720px}.hero-background{object-position:44% 50%}.hero-inner{padding:20px 13px}.hero-wordmark{width:100%}.studio{padding-block:61px 69px}.intro-grid{grid-template-columns:1fr;gap:23px}.section-label{padding-top:0}.intro-main h2{font-size:clamp(33px,8.2vw,45px);line-height:1.15;letter-spacing:-.02em}.intro-main p{font-size:24px;line-height:1.5;margin-top:21px}.intro-main .studio-scope{font-size:16px;line-height:1.8}.intro-main .text-link{margin-top:18px}.films{padding-block:60px}.section-heading{align-items:flex-start;flex-direction:column;gap:14px}.section-heading h2{font-size:46px}.film-grid{grid-template-columns:1fr;gap:32px}.film-caption h3{font-size:28px}.approach-lead{grid-template-columns:1fr;gap:28px;padding:60px var(--gutter) 0}.approach-heading .label{margin-bottom:20px}.approach-heading h2{font-size:46px}.approach-intro{font-size:28px}.process{grid-template-columns:1fr;padding-block:37px 58px;gap:29px}.process article{padding-top:20px}.process-number{margin-bottom:11px}.process h3{font-size:33px;margin-bottom:13px}.process p{font-size:16px;line-height:1.85}.details-section{padding-block:60px 68px}.details-grid{grid-template-columns:1fr;gap:31px}.details-heading .label{margin-bottom:17px}.details-heading h2{font-size:46px}.faq summary{font-size:16px;padding-block:21px}.inquiries{padding-block:63px 64px}.inquiry-grid{grid-template-columns:1fr;gap:33px}.inquiry-intro .label{margin-bottom:18px}.inquiry-intro h2{font-size:62px;margin-bottom:18px}.inquiry-intro>p{font-size:26px;max-width:none}.inquiry-intro .location{margin-top:23px}.inquiry-form{gap:21px 20px}.footer{padding-block:32px 23px}.footer-main{grid-template-columns:1fr auto;gap:24px}.footer-logo{width:205px;grid-column:1/-1}.footer-main p{font-size:13px}.footer-bottom{flex-direction:column;gap:10px;margin-top:24px}.inquiry-dialog{padding:23px}.dialog-top h2{font-size:31px}.dialog-actions .button{padding-inline:19px}}
@media(max-width:370px){:root{--gutter:21px}.hero{min-height:465px}.inquiry-form{grid-template-columns:1fr}.field{grid-column:1/-1}.footer-main{grid-template-columns:1fr;gap:16px}.footer-main .text-link{justify-self:start}.intro-main h2{font-size:32px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
@media print{.header,.hero,.inquiry-form,.inquiry-dialog,.footer{display:none}.studio,.details-section,.inquiries{padding:30px 0}.process{display:block}.process article{margin-bottom:25px}.approach-lead,.inquiry-grid,.details-grid,.intro-grid{display:block}.approach-lead{padding-top:30px}.approach-intro{margin-top:20px}.inquiries{color:#000;background:#fff}.label{margin-bottom:20px}}
/* A silent, one-session opening using the original vector lettering. */
.opening{position:fixed;inset:0;z-index:100;background:#111510;color:#efeee7;isolation:isolate;overflow:hidden}
.opening-pending body{background:#111510}
.opening-pending #site-content{visibility:hidden}
.opening-pending,.opening-active{overflow:hidden}
.opening-active .header,.opening-active .hero-wordmark{opacity:0}
.opening-backdrop,.opening-shade{position:absolute;inset:0;width:100%;height:100%}
.opening-backdrop{object-fit:cover;object-position:50% 48%;opacity:0;transform:scale(1)}
.opening-shade{background:linear-gradient(180deg,rgba(12,14,11,.28),rgba(12,14,11,.48) 45%,rgba(12,14,11,.36) 70%,rgba(12,14,11,.64))}
.opening-inner{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:42px var(--gutter)}
.opening-mark{width:min(77%,1000px);transform-origin:top left;filter:drop-shadow(0 2px 15px rgba(0,0,0,.16))}
.opening-logo{width:100%;height:auto;overflow:visible}
.opening-title{opacity:0}
.opening-stroke{stroke-dasharray:1;stroke-dashoffset:1;opacity:0}
.opening-enter{display:block;margin-top:36px;min-width:106px;min-height:48px;padding:11px 23px;border:1px solid rgba(239,238,231,.45);border-radius:0;background:rgba(17,21,16,.18);color:#efeee7;font:400 14px/1.5 var(--sans);letter-spacing:.045em;transition:background .2s,border-color .2s}
.opening-enter:hover{background:rgba(212,185,89,.12);border-color:#d4b959}
.opening-enter:focus-visible{outline:2px solid #d4b959;outline-offset:6px}
.opening.is-ready .opening-backdrop{animation:opening-photo 3.2s cubic-bezier(.2,.55,.35,1) both}
.opening.is-ready .opening-title{animation:opening-title .85s ease-out .95s both}
.opening.is-ready .opening-stroke{animation:opening-ink var(--ink-duration) linear var(--ink-delay) both}
.opening.is-exiting .opening-title{animation:none;opacity:1}
.opening.is-exiting .opening-stroke{animation:none;stroke-dashoffset:0;opacity:1}
.opening.is-exiting .opening-enter{opacity:0;pointer-events:none;transition:opacity .2s}
.opening-leaving .header,.opening-leaving .hero-wordmark{opacity:1;transition:opacity .55s ease .18s}
@keyframes opening-photo{0%{opacity:0;transform:scale(1)}26%{opacity:1}100%{opacity:1;transform:scale(1.025)}}
@keyframes opening-title{from{opacity:0}to{opacity:1}}
@keyframes opening-ink{0%{stroke-dashoffset:1;opacity:0}1%{opacity:1}100%{stroke-dashoffset:0;opacity:1}}
@media(max-width:1000px){.opening-mark{width:90%}}
@media(max-width:720px){.opening-inner{padding:25px 13px}.opening-mark{width:100%}.opening-backdrop{object-position:44% 50%}.opening-enter{margin-top:30px}}
@media(max-height:450px) and (orientation:landscape){.opening-mark{width:min(70%,560px)}.opening-inner{padding:20px}.opening-enter{margin-top:18px;min-height:44px;padding-block:9px}}
@media(prefers-reduced-motion:reduce){.opening .opening-backdrop{opacity:1;transform:none}.opening .opening-title{opacity:1}.opening .opening-stroke{stroke-dashoffset:0;opacity:1}}
@media print{.opening{display:none!important}.opening-pending #site-content{visibility:visible}.opening-active{overflow:visible}}

/* Films lightbox */
.film-poster.no-poster{background:linear-gradient(135deg,#2d332b,#1d211c)}
.film-poster.no-poster img{visibility:hidden}
.film-link:focus-visible{outline-color:var(--gold)}
.film-dialog{width:min(1180px,calc(100% - 32px));max-height:calc(100svh - 32px);padding:0;border:0;background:#0d0f0c;color:var(--paper);overflow:visible}
.film-dialog::backdrop{background:rgba(8,10,7,.9)}
.film-dialog-top{width:min(100%,calc((100svh - 110px) * 16 / 9));margin-inline:auto;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:0 0 12px}
.film-dialog-top p{font-family:var(--serif);font-size:22px;line-height:1.3;color:var(--paper)}
.film-dialog-close{border:0;background:transparent;color:var(--paper);font-size:14px;min-height:44px;padding:5px 0;border-bottom:1px solid currentColor}
.film-dialog-close:hover{opacity:.7}
.film-dialog :focus-visible{outline-color:var(--gold)}
.film-frame{position:relative;aspect-ratio:16/9;width:min(100%,calc((100svh - 110px) * 16 / 9));margin-inline:auto;background:#000}
.film-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.film-dialog[open]{background:transparent}

/* Form states */
.form-error{font-size:14px!important;color:#e7c98a;margin-top:12px!important;min-height:0}
.form-error:empty{display:none}
.button[disabled]{opacity:.7;cursor:wait}
.form-sent{border-top:1px solid #59604c;padding-top:28px;outline:none}
.form-sent h3{font-size:44px;line-height:1.1;margin-bottom:14px;color:var(--paper)}
.form-sent p{font-family:var(--serif);font-size:24px;line-height:1.45;color:#dfe1d6}
@media(max-width:720px){.film-dialog{width:calc(100% - 20px)}.film-dialog-top p{font-size:18px}}

/* With an odd number of films, the first one runs full width so the grid has no gap */
.film-link:first-child:nth-last-child(odd){grid-column:1/-1}
.film-link:first-child:nth-last-child(odd) .film-poster{aspect-ratio:2/1}
.film-link:first-child:nth-last-child(odd) .film-caption h3{font-size:clamp(27px,2.6vw,36px)}
@media(max-width:720px){.film-link:first-child:nth-last-child(odd) .film-poster{aspect-ratio:16/10}.film-link:first-child:nth-last-child(odd) .film-caption h3{font-size:28px}}

/* Contact email links */
.inquiry-intro .location a,.footer-main p a{text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:1px}
.inquiry-intro .location a{color:#e7d9a8}
.inquiry-intro .location a:hover,.footer-main p a:hover{opacity:.75}
.nowrap{white-space:nowrap}

/* Phones: Date and Venue each get the full width instead of two cramped half columns */
@media(max-width:720px){.inquiry-form .field:not(.wide){grid-column:1/-1}}
/* iPhone/iPad Safari: keep the date field the same height and left alignment as the other fields */
@supports (-webkit-touch-callout:none){
  input[type=date]{-webkit-appearance:none;appearance:none;display:block;min-height:48px;line-height:30px;text-align:left}
  input[type=date]::-webkit-date-and-time-value{text-align:left}
}

/* Film groups (Weddings, Celebrations) */
.film-group+.film-group{margin-top:72px}
.film-group-title{font-family:var(--sans);font-size:12px;color:var(--muted);border-top:1px solid #3a4136;padding-top:16px;margin-bottom:26px}
@media(max-width:720px){.film-group+.film-group{margin-top:50px}.film-group-title{margin-bottom:20px}}
