/**
 * GALILEO / DESIGN SYSTEM 1.4.0
 * Semantic skin above the preserved structural stylesheet.
 * Dynamic properties originate from inc/galileo-design.php Theme Options.
 * No green/olive interface colors. All palette/typography overrides go through tokens.
 */
:root{
  --paper:#F3EFE7;--ink:#29231D;--muted:#675E54;--line:#D3C6B5;
  --gold:#785426;--cinema:#171612;--cinema-text:#F3EFE7;
  --gold-light:#C5A46B;--surface:#FFFDF8;--display:Inter,Arial,sans-serif;
  --font-body:Inter,Arial,sans-serif;--gs-hero-size:82px;--gs-hero-mobile:46px;
  --gs-h2-size:48px;--gs-h2-mobile:34px;--gs-body-size:16px;
  --gs-article-width:70ch;--gs-letter-spacing:-.03em;--gs-gutter-desktop:56px;
  --gs-gutter-mobile:20px;--gs-section-gap:92px;--gs-card-gap:30px;
  --gs-button-radius:2px;--gs-button-height:46px;--gs-button-font-size:12px;
  --gs-logo-desktop:194px;--gs-logo-mobile:158px;--gs-image-radius:0px;
  --gs-films-cols:2;--gs-film-width:70ch;--gs-portfolio-cols:3
}
html{scroll-padding-top:24px}
body{background:var(--paper);color:var(--ink);font:400 var(--gs-body-size)/1.7 var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
::selection{background:var(--gold-light);color:#171612}
.wrap{max-width:var(--wide);width:calc(100% - (var(--gs-gutter-desktop) * 2))}
a{color:inherit}a:hover{color:var(--gold)}
:where(button,input,textarea,select){font-family:var(--font-body)}
:where(a,button,input,textarea,select):focus-visible{outline:2px solid var(--gold);outline-offset:4px}
:where(p,li){overflow-wrap:break-word}
:where(.hero h1,.section-head h2,.section-title,.studio .section-title,.service h3,.callout h2,.page-heading h1,.page-content h2,.page-content h3,.contact-grid h2,.hero-bottom strong,.studio-clients h2,.search-result h2){font-family:var(--display);font-weight:400;font-style:normal;letter-spacing:var(--gs-letter-spacing);text-wrap:balance}
/* Consistent branded heading scale; editing controls are shared by all templates. */
.hero h1{font-family:var(--display);font-size:clamp(52px,6vw,var(--gs-hero-size));line-height:1.045;letter-spacing:var(--gs-letter-spacing);max-width:13.5ch;margin:0;font-weight:400}
.hero h1 em{color:var(--gold);font-weight:400}
.page-heading h1{font-family:var(--display);font-size:clamp(45px,5vw,76px);font-weight:400;line-height:1.085;letter-spacing:var(--gs-letter-spacing);max-width:18ch;overflow-wrap:normal}
.section-title,.section-head h2,.studio .section-title,.callout h2{font-family:var(--display);font-size:clamp(32px,4vw,var(--gs-h2-size));line-height:1.13;letter-spacing:var(--gs-letter-spacing)}
.page-content h2{font-size:clamp(29px,3.2vw,var(--gs-h2-size));line-height:1.17;margin-top:1.6em}
.page-content h3{font-size:clamp(25px,2.4vw,32px);line-height:1.2}
.page-heading .lead,.hero-summary,.section-head p,.section-lead{line-height:1.65;color:var(--muted)}
.eyebrow{color:var(--gold);font:600 10px/1.5 var(--font-body);letter-spacing:.16em;text-transform:uppercase}
/* Header is intentionally light: the original JPEG logo is dark and must remain unaltered. */
.site-header{background:var(--paper);color:var(--ink);border-bottom:1px solid var(--line);position:relative;z-index:15}
.header-inner{min-height:104px;gap:28px}
.site-header .brand{flex-shrink:0;width:var(--gs-logo-desktop)}
.site-header .brand img{display:block;width:100%;height:auto;object-fit:contain}
.site-nav{gap:clamp(11px,1.7vw,28px)}
.site-nav a,.site-nav button,.languages{color:var(--ink);font-size:12px;font-weight:500;letter-spacing:.01em}
.site-nav .contact-link{display:inline-flex;align-items:center;justify-content:center;min-height:var(--gs-button-height);padding:0 18px;border:1px solid var(--ink);background:var(--ink);color:var(--paper);border-radius:var(--gs-button-radius);transition:background .18s ease,border-color .18s ease,color .18s ease}
.site-nav .contact-link:hover{background:var(--gold);border-color:var(--gold);color:#fff}
.site-nav .search-toggle{border:0;background:none;padding:8px 0}
.menu-toggle{border:0;background:transparent;padding:12px 4px;min-width:70px;min-height:44px;color:var(--ink);align-items:center;gap:11px;font-size:12px}
.menu-label{display:inline-block}
.menu-lines{width:23px;display:inline-flex;flex-direction:column;gap:6px}
.menu-lines i{height:1.5px;background:currentColor;width:23px;display:block;transition:transform .2s,opacity .2s}
.menu-toggle[aria-expanded=true] .menu-lines i:first-child{transform:translateY(3.7px) rotate(45deg)}
.menu-toggle[aria-expanded=true] .menu-lines i:last-child{transform:translateY(-3.7px) rotate(-45deg)}
.site-search{background:var(--paper);border-color:var(--line)}
.search-input-row input[type=search],.results-search input[type=search]{color:var(--ink);border-bottom-color:var(--line)}
/* General buttons: one set of states and dimensions. Showreel remains a quiet text link. */
.button,.site-nav .contact-link,.results-search button,.search-input-row button{font-family:var(--font-body);font-size:var(--gs-button-font-size)}
.button{min-height:var(--gs-button-height);padding:12px 23px;border-radius:var(--gs-button-radius);border:1px solid var(--ink);background:var(--ink);color:var(--paper);font-weight:600;transition:background .18s ease,color .18s ease,border-color .18s ease}
.button:hover{background:var(--gold);border-color:var(--gold);color:#fff}
.button.outline{background:transparent;color:var(--ink)}
.button.outline:hover{background:var(--ink);color:var(--paper)}
.button.light{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.text-link,.reel-link,.showreel-link,.hero a[href*="showreel"]{background:transparent;border:0;border-bottom:1px solid currentColor;color:inherit;padding:0 0 5px;box-shadow:none;border-radius:0;min-height:auto;text-decoration:none;transition:color .18s}
.text-link:hover,.reel-link:hover,.showreel-link:hover,.hero a[href*="showreel"]:hover{color:var(--gold)}
/* The film still is the visual focal point. */
.hero{padding-top:clamp(42px,5vw,78px)}
.hero-copy{gap:clamp(24px,4.5vw,72px);align-items:end}
.hero-summary{max-width:40ch}
.hero-still,.project-image,.project-cover{border-radius:var(--gs-image-radius);overflow:hidden}
.hero-still{background:var(--cinema)}
.hero-still img{object-position:center}
.project-card h3,.project-card h2{font-family:var(--display);line-height:1.16;letter-spacing:-.02em}
.work-grid{gap:var(--gs-card-gap);grid-template-columns:repeat(var(--gs-portfolio-cols),minmax(0,1fr))}
.project-card,.project-card img{min-width:0}
.filter-bar a{border-color:var(--line);color:var(--ink)}
.filter-bar a.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.filter-bar a:hover{color:var(--gold)}
/* Deep-black studio section; never the green inherited from the earlier UI. */
.studio{background:var(--cinema);color:var(--cinema-text);padding:clamp(35px,5vw,72px);gap:clamp(30px,5vw,82px);border:0;margin-top:var(--gs-section-gap)}
.studio .eyebrow,.studio .number{color:var(--gold-light)}
.studio p{color:var(--cinema-text);opacity:.83}
.studio .text-link{color:var(--gold-light);border-color:var(--gold-light)}
.studio .text-link:hover{color:#fff}
.service{border-color:var(--line)}.service .number{color:var(--gold)}
/* Reading typography and long film text: content never spans the full viewport. */
.page-content{width:100%;max-width:min(100%,920px);font-size:var(--gs-body-size);line-height:1.8}
.page-content>p,.page-content>h2,.page-content>h3,.page-content>ul,.page-content>ol,.page-content>blockquote{max-width:var(--gs-article-width);margin-left:auto;margin-right:auto}
.page-content>p{margin-bottom:1.35em}
.page-content a{text-underline-offset:3px}
.page-content figure{margin-top:35px;margin-bottom:35px;max-width:100%}
.page-content img{max-width:100%;height:auto;border-radius:var(--gs-image-radius)}
.page-content :where(.wp-block-embed,.wp-block-video){width:100%;max-width:100%}
.page-content .wp-block-embed__wrapper{position:relative;display:block;width:100%;height:auto;max-width:100%;aspect-ratio:16/9;overflow:hidden;background:var(--cinema)}
.page-content .wp-block-embed__wrapper iframe,.page-content iframe{max-width:100%}
.page-content .wp-block-embed__wrapper iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
/* Progressive Films: intro full-width reading column, then balanced two-column video archive. */
.gs-films .page-content{display:grid;grid-template-columns:repeat(var(--gs-films-cols),minmax(0,1fr));column-gap:var(--gs-card-gap);row-gap:20px;max-width:1140px;align-items:start}
.gs-films .page-content>p,.gs-films .page-content>h2,.gs-films .page-content>h3,.gs-films .page-content>ul,.gs-films .page-content>ol{grid-column:1/-1;width:100%;max-width:var(--gs-film-width);margin-left:auto;margin-right:auto}
.gs-films .page-content>figure{grid-column:auto;width:100%;min-width:0;margin:12px 0 26px}
.gs-films .page-content>figure .wp-block-embed__wrapper{width:100%;aspect-ratio:16/9}
.gs-films .page-heading{max-width:1140px;margin-left:auto;margin-right:auto}
.single-project .page-content{max-width:900px}
.single-project .page-content>ul,.single-project .page-content>ol{padding-left:1.3em}
.single-project .page-content>ul li,.single-project .page-content>ol li{margin-bottom:.5em}
.studio-clients{max-width:940px;margin:calc(var(--gs-section-gap) * .7) auto 0;padding:35px 0 0;border-top:1px solid var(--line)}
.studio-clients h2{font-family:var(--display);font-size:clamp(30px,3.2vw,44px);line-height:1.16;letter-spacing:var(--gs-letter-spacing);max-width:22ch;margin:0 0 25px}
.studio-clients p{font-size:clamp(15px,1.3vw,17px);line-height:1.85;color:var(--muted);max-width:66ch;margin:0}
/* A warm brass concluding section replaces the previous olive-brass overlay. */
.callout{display:grid;grid-template-columns:1.1fr .9fr;align-items:end;gap:clamp(28px,5vw,80px);padding:clamp(35px,5vw,66px);margin-top:var(--gs-section-gap);background:var(--gold-light);color:#27221b;border:0}
.callout .eyebrow{color:#403121;margin-bottom:22px}
.callout h2{font-size:clamp(43px,5vw,76px);line-height:1.04;color:#27221b}
.callout-contact{display:grid;grid-template-columns:1fr auto;gap:15px;border-top:1px solid #725831;padding-top:24px;color:#27221b;font-size:18px}
.callout-contact:hover{color:#27221b}
.callout-contact small{grid-column:1/-1;font-size:12px}
.callout-arrow{font:400 40px/1 var(--font-body)}
/* Contact and footer: one social-links component in the entire page. */
.contact-page .page-heading h1{color:var(--ink)}
.contact-email{background:var(--gold-light);border:0;color:#27221b;padding:clamp(24px,4vw,44px)}
.contact-email .eyebrow,.contact-email a{color:#27221b}
.contact-base{grid-template-columns:1.25fr 1fr;gap:30px}
.contact-base .eyebrow{color:var(--gold)}
.contact-phone,.map-link{color:var(--ink)}
.site-footer{margin-top:80px;background:var(--surface);border-top:1px solid var(--line);color:var(--ink);padding:52px 0 27px}
.site-footer .brand img{width:210px;height:auto}
.site-footer :where(p,.footer-bottom){color:var(--muted)}
.site-footer a:hover{color:var(--gold)}
.gs-socials{display:flex;gap:clamp(12px,1.8vw,25px);flex-wrap:wrap;align-items:center}
.gs-socials a{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:12px;font-weight:500;color:var(--ink);padding:5px 0;line-height:1.3;box-shadow:none;background:none;border:0;text-decoration:none}
.gs-socials a:hover{color:var(--gold)}
.gs-socials svg{display:block;width:17px;height:17px;flex:0 0 17px}
.footer-bottom{border-color:var(--line)}
@media(max-width:1050px){
 .wrap{width:calc(100% - 64px)}
 .header-inner{min-height:96px}
 .site-header .brand{width:175px}
 .work-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .hero h1{font-size:clamp(48px,6.5vw,var(--gs-hero-size))}
 .contact-base{grid-template-columns:1fr 1fr}
}
@media(max-width:760px){
 .wrap{width:calc(100% - (var(--gs-gutter-mobile) * 2)))}
 .header-inner{min-height:78px;align-items:center}
 .site-header .brand{width:var(--gs-logo-mobile);max-width:60%}
 .menu-toggle{display:inline-flex;align-items:center;justify-content:flex-end}
 .site-nav{width:100%;padding:16px 0 26px;align-items:stretch;gap:0;border-top:1px solid var(--line)}
 .site-nav a{padding:13px 0;font-size:14px;min-height:44px}
 .site-nav .contact-link{align-self:flex-start;padding:0 20px;margin-top:10px}
 .site-nav .search-toggle{min-height:44px;justify-content:flex-start}
 .languages{padding-top:12px}
 .hero{padding-top:34px}
 .hero-copy{grid-template-columns:1fr;gap:25px;margin-bottom:32px}
 .hero h1{font-size:var(--gs-hero-mobile);line-height:1.07;max-width:14ch;letter-spacing:var(--gs-letter-spacing)}
 .hero-summary{max-width:43ch;font-size:15px}
 .section-title,.section-head h2,.studio .section-title{font-size:var(--gs-h2-mobile)}
 .page-heading{padding:46px 0 32px;margin-bottom:34px}
 .page-heading h1{font-size:clamp(35px,9vw,56px);max-width:100%;overflow-wrap:break-word}
 .page-heading .lead{font-size:15px;margin-top:20px}
 .work-grid{grid-template-columns:1fr;gap:22px}
 .studio{grid-template-columns:1fr;padding:34px 25px;gap:25px;margin-top:56px}
 .gs-films .page-content{grid-template-columns:1fr;gap:0}
 .gs-films .page-content>figure{margin:12px 0 27px}
 .page-content{font-size:16px;line-height:1.75}
 .page-content>figure{margin-top:25px;margin-bottom:25px}
 .callout{grid-template-columns:1fr;margin-top:60px;padding:35px 25px;gap:38px}
 .callout h2{font-size:clamp(42px,11vw,62px)}
 .contact-base{grid-template-columns:1fr 1fr;gap:32px 24px}
 .contact-base>div:first-child{grid-column:1/-1}
 .contact-email{padding:30px 23px}
 .site-footer{padding:38px 0 25px;margin-top:64px}
 .gs-socials{gap:8px 18px}
 .gs-socials a{min-height:44px}
}
@media(max-width:420px){
 .wrap{width:calc(100% - 32px)}
 .hero h1{font-size:min(var(--gs-hero-mobile),12vw)}
 .site-header .brand{width:min(var(--gs-logo-mobile),48vw)}
 .contact-base{grid-template-columns:1fr}
 .contact-base>div:first-child{grid-column:auto}
 .email-signature{font-size:clamp(22px,6vw,34px)}
 .site-footer .brand img{width:184px}
}
@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}
}

/* 1.4.1: one stroke-SVG icon language; prevent iOS emoji controls throughout theme. */
.gs-icon{display:inline-block;width:1.05em;height:1.05em;max-width:none;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.14em;overflow:visible}
:is(.text-link,.map-link,.entry-nav a,.search-result,.site-nav .contact-link,.search-input-row button,.results-search button,.button):has(>.gs-icon){display:inline-flex;align-items:center;gap:.42em}
.text-link .gs-icon,.map-link .gs-icon,.site-nav .contact-link .gs-icon{width:.95em;height:.95em}
.hero-bottom .button .gs-icon{width:17px;height:17px;flex:0 0 17px;stroke-width:1.5;vertical-align:middle}
.search-result>span:last-child .gs-icon{width:21px;height:21px}
.email-arrow{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}
.email-arrow .gs-icon{width:.9em;height:.9em;stroke-width:1.5}
.callout-arrow{display:inline-flex;align-items:center;justify-content:center}
.callout-arrow .gs-icon{width:1em;height:1em;stroke-width:1.25}
.entry-nav a{display:inline-flex;align-items:center;gap:.4em}
.entry-nav .gs-icon{width:1.15em;height:1.15em}
.pagination a:has(.gs-icon){display:inline-flex;align-items:center;justify-content:center}
.pagination .gs-icon{width:18px;height:18px}
.pagination .screen-reader-text{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important;min-width:0!important}
@media(max-width:760px){.hero-bottom .button .gs-icon{width:16px;height:16px}.callout-arrow .gs-icon{width:.8em;height:.8em}}
