:root { --ink:#071521; --ink-2:#10293a; --steel:#617485; --mist:#e8edf0; --paper:#f7f6f2; --white:#fff; --accent:#d79a4a; --line:rgba(7,21,33,.16); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:"Helvetica Neue",Arial,sans-serif; line-height:1.6; }
body.nav-open { overflow:hidden; }
.page-canvas { display:flex; min-width:0; flex-direction:column; }
.canvas-block { position:relative; min-width:0; }
.canvas-block[hidden] { display:none!important; }
.canvas-block-hidden-preview { opacity:.48; outline:3px dashed #b45656; outline-offset:-3px; }
.canvas-builtin-block > .canvas-builtin-image { width:min(1220px,calc(100% - 40px)); margin:clamp(28px,5vw,72px) auto; }
.canvas-builtin-block.canvas-image-left,.canvas-builtin-block.canvas-image-right { display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,38vw); align-items:stretch; }
.canvas-builtin-block.canvas-image-left { grid-template-columns:minmax(300px,38vw) minmax(0,1fr); }
.canvas-builtin-block.canvas-image-left > .canvas-builtin-image,.canvas-builtin-block.canvas-image-right > .canvas-builtin-image { width:100%; height:100%; min-height:420px; margin:0; align-self:stretch; }
.canvas-builtin-block.canvas-image-left > .canvas-builtin-image img,.canvas-builtin-block.canvas-image-right > .canvas-builtin-image img { max-height:none; }
.canvas-theme-light > section { background:var(--paper)!important; color:var(--ink)!important; }
.canvas-theme-light > .hero .hero-shade { background:linear-gradient(90deg,rgba(247,246,242,.94) 0%,rgba(247,246,242,.68) 52%,rgba(247,246,242,.28) 100%)!important; }
.canvas-theme-light .eyebrow,.canvas-theme-light .eyebrow.light { color:#597184!important; }
.canvas-theme-light p:not(.eyebrow),.canvas-theme-light .section-heading > p,.canvas-theme-light .service-list p { color:#455c6d!important; }
.canvas-theme-light .text-link,.canvas-theme-light .light-link { border-color:#9bacb7!important; color:var(--ink)!important; }
.canvas-theme-light .service-list { border-color:var(--line)!important; }
.canvas-theme-light .service-list article { border-color:var(--line)!important; }
.canvas-theme-light .service-list a { border-color:#aebcc5!important; color:var(--ink)!important; }
.canvas-theme-dark > section { background:var(--ink)!important; color:#fff!important; }
.canvas-theme-dark .eyebrow { color:#aebfc9!important; }
.canvas-theme-dark p:not(.eyebrow),.canvas-theme-dark .section-heading > p { color:#c4d0d7!important; }
.canvas-theme-dark .text-link { color:#fff!important; }
.canvas-theme-accent > section { background:#ead2ad!important; color:var(--ink)!important; }
.canvas-theme-accent .eyebrow { color:#725b3c!important; }
.canvas-theme-accent p:not(.eyebrow),.canvas-theme-accent .section-heading > p { color:#3f5260!important; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
button,input,textarea { font:inherit; }
button { color:inherit; }
.skip-link { position:fixed; z-index:999; top:12px; left:12px; padding:10px 14px; background:#fff; color:#071521; transform:translateY(-150%); }
.skip-link:focus { transform:none; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.page-shell { width:min(1240px,calc(100% - 64px)); margin-inline:auto; }
.section-space { padding:120px 0; }
.eyebrow { margin:0 0 20px; color:#536b7d; font-size:.75rem; font-weight:800; letter-spacing:.2em; text-transform:uppercase; }
.eyebrow.light { color:#c7d4dc; }
h1,h2,h3,p { margin-top:0; overflow-wrap:anywhere; }
h1,h2 { font-family:Georgia,"Times New Roman",serif; font-weight:400; letter-spacing:-.035em; line-height:1.03; }
h2 { font-size:clamp(2.5rem,4.7vw,5.25rem); }
.button { display:inline-flex; align-items:center; justify-content:center; gap:24px; min-height:56px; padding:0 26px; border:0; font-size:.8rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; }
.button.primary { background:var(--accent); color:var(--ink); }
.button:hover { transform:translateY(-2px); }
.button:disabled { opacity:.55; cursor:wait; }
.text-link { display:inline-flex; gap:42px; align-items:center; padding-bottom:8px; border-bottom:1px solid currentColor; font-size:.78rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.light-link { color:var(--white); }

.site-header { position:absolute; z-index:30; top:0; left:0; width:100%; color:white; border-bottom:1px solid rgba(255,255,255,.18); }
.header-inner { width:min(1400px,calc(100% - 56px)); min-height:102px; margin:auto; display:flex; align-items:center; justify-content:space-between; }
.brand { min-width:0; display:flex; align-items:center; gap:12px; }
.brand img { width:58px; height:58px; object-fit:cover; }
.brand-copy { min-width:0; display:flex; flex-direction:column; font-family:var(--aps-header-font,"Helvetica Neue",Arial,sans-serif); font-size:var(--aps-brand-secondary-size,.76rem); line-height:1.15; letter-spacing:.12em; text-transform:uppercase; }
.brand-copy strong { font-size:var(--aps-brand-primary-size,.84rem); letter-spacing:.04em; }
.brand-copy .brand-amo { margin-top:2px; font-size:var(--aps-brand-tertiary-size,.68rem); letter-spacing:.11em; }
.main-nav { display:flex; align-items:center; gap:clamp(14px,1.8vw,28px); font-family:var(--aps-header-font,"Helvetica Neue",Arial,sans-serif); font-size:var(--aps-header-nav-size,.72rem); font-weight:700; letter-spacing:.085em; text-transform:uppercase; }
.main-nav > a { white-space:nowrap; }
.main-nav > a:not(.nav-cta) { padding:39px 0 37px; border-bottom:2px solid transparent; }
.main-nav > a[aria-current="page"] { border-color:var(--accent); }
.nav-cta { padding:14px 17px; border:1px solid rgba(255,255,255,.48); }
.menu-toggle { display:none; }
.site-header.compact-nav .menu-toggle { z-index:32; display:grid; gap:5px; flex:0 0 46px; width:46px; height:46px; place-content:center; border:1px solid rgba(255,255,255,.4); background:transparent; }
.site-header.compact-nav .menu-toggle span { width:20px; height:1px; background:white; }
.site-header.compact-nav .main-nav { position:fixed; z-index:31; top:0; right:0; width:min(360px,92vw); height:100dvh; overflow:auto; padding:110px 34px 40px; background:var(--ink); display:none; flex-direction:column; align-items:stretch; gap:0; box-shadow:-18px 0 50px rgba(0,0,0,.28); }
.site-header.compact-nav .main-nav.open { display:flex; }
.site-header.compact-nav .main-nav > a { white-space:normal; overflow-wrap:anywhere; }
.site-header.compact-nav .main-nav > a:not(.nav-cta) { padding:18px 0; border-bottom:1px solid rgba(255,255,255,.14); }
.site-header.compact-nav .nav-cta { margin-top:28px; }

.hero { position:relative; min-height:820px; height:100svh; max-height:980px; overflow:hidden; background:var(--ink); color:white; }
.hero-slide { position:absolute; inset:0; opacity:0; transform:scale(1.04); transition:opacity 1s ease,transform 7s ease; }
.hero-slide.active { opacity:1; transform:scale(1); }
.hero-slide img { width:100%; height:100%; object-fit:cover; }
.hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(3,15,24,.88) 0%,rgba(3,15,24,.55) 48%,rgba(3,15,24,.15) 78%),linear-gradient(0deg,rgba(3,15,24,.55),transparent 50%); }
.hero-content { position:relative; z-index:2; padding-top:220px; }
.hero h1 { max-width:890px; margin-bottom:26px; font-size:clamp(4rem,min(8.6vw,12vh),8.6rem); }
.hero-lead { max-width:680px; color:#d9e1e6; font-size:1.12rem; line-height:1.7; }
.hero-actions { display:flex; gap:34px; align-items:center; margin-top:42px; }
.hero-controls { position:absolute; z-index:3; bottom:42px; left:50%; transform:translateX(-50%); display:flex; align-items:center; gap:26px; }
.slide-count { font-size:.72rem; letter-spacing:.14em; }
.slide-dots { display:flex; flex:1; gap:8px; }
.slide-dots button { width:72px; height:2px; padding:0; border:0; background:rgba(255,255,255,.3); cursor:pointer; }
.slide-dots button[aria-current="true"] { background:var(--accent); }
.arrow-controls { display:flex; gap:8px; }
.arrow-controls button { width:50px; height:50px; border:1px solid rgba(255,255,255,.4); background:transparent; color:white; cursor:pointer; }

.statement { background:var(--paper); }
.statement-grid { display:grid; grid-template-columns:1fr 3fr; gap:40px; }
.statement-grid h2 { max-width:900px; margin-bottom:30px; }
.statement-grid > div > p { max-width:760px; color:#455c6d; font-size:1.1rem; }
.statement-grid .text-link { margin-top:26px; }
.service-preview { background:var(--ink); color:white; }
.section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:48px; margin-bottom:64px; }
.section-heading h2 { max-width:780px; margin:0; }
.section-heading > p { max-width:440px; margin:0; color:#536b7d; }
.service-preview .section-heading > p { color:#b9c7cf; }
.service-list { border-top:1px solid rgba(255,255,255,.18); }
.service-list article { display:grid; grid-template-columns:80px 1fr 2fr 54px; gap:32px; align-items:center; padding:36px 0; border-bottom:1px solid rgba(255,255,255,.18); }
.service-list span { color:#8498a5; font-size:.75rem; }
.service-list h3 { margin:0; font-family:Georgia,serif; font-size:1.65rem; font-weight:400; }
.service-list p { margin:0; color:#b9c7cf; }
.service-list a { width:48px; height:48px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.25); }
.feature-split { display:grid; grid-template-columns:1fr 1fr; min-height:760px; background:#10293a; color:white; }
.feature-image img { width:100%; height:100%; object-fit:cover; }
.feature-copy { padding:100px clamp(48px,7vw,120px); display:flex; flex-direction:column; justify-content:center; }
.feature-copy p:not(.eyebrow) { max-width:580px; color:#c4d0d7; font-size:1.08rem; }
.feature-copy .text-link { align-self:flex-start; margin-top:28px; }
.gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.gallery-item { position:relative; min-height:360px; padding:0; border:0; overflow:hidden; background:var(--ink); text-align:left; cursor:zoom-in; }
.gallery-item:nth-child(5n+1) { grid-column:span 2; }
.gallery-item img { width:100%; height:100%; position:absolute; inset:0; object-fit:cover; transition:transform .55s ease; }
.gallery-item::after { content:""; position:absolute; inset:38% 0 0; background:linear-gradient(transparent,rgba(3,15,24,.78)); }
.gallery-item:hover img { transform:scale(1.035); }
.gallery-caption { position:absolute; z-index:2; left:24px; right:24px; bottom:20px; color:white; display:flex; justify-content:space-between; align-items:end; gap:16px; }
.gallery-caption strong { font-family:Georgia,serif; font-size:1.25rem; font-weight:400; }
.gallery-caption span { font-size:.65rem; letter-spacing:.1em; text-transform:uppercase; }
.lightbox { position:fixed; z-index:100; inset:0; display:grid; place-items:center; padding:54px; background:rgba(2,10,16,.95); color:white; }
.lightbox figure { margin:0; max-width:min(1100px,85vw); }
.lightbox figure img { max-height:78vh; margin:auto; }
.lightbox figcaption { display:flex; justify-content:space-between; padding-top:14px; }
.lightbox-close,.lightbox-arrow { position:absolute; border:1px solid rgba(255,255,255,.35); background:rgba(0,0,0,.15); color:white; cursor:pointer; }
.lightbox-close { top:24px; right:24px; width:50px; height:50px; font-size:2rem; }
.lightbox-arrow { top:50%; width:54px; height:54px; }
.lightbox-arrow.prev { left:24px; }.lightbox-arrow.next { right:24px; }
.contact-band { background:#123249; color:white; padding:110px 0; }
.contact-band .page-shell { display:flex; align-items:end; justify-content:space-between; gap:48px; flex-wrap:wrap; }
.contact-band h2 { max-width:780px; margin:0; }
.contact-band p:not(.eyebrow) { max-width:620px; color:#c4d0d7; }

body[data-aps-preview="true"] [data-content-key],
body[data-aps-preview="true"] [data-gallery-field],
body[data-aps-preview="true"] [data-section-field] { transition:outline-color .2s,background-color .2s; }
body[data-aps-preview="true"] [contenteditable="true"] { outline:1px dashed rgba(215,154,74,.8); outline-offset:5px; cursor:text; }
body[data-aps-preview="true"] [contenteditable="true"]:focus { outline:3px solid #d79a4a; background:rgba(255,248,228,.13); }
body[data-aps-preview="true"] .gallery-item [contenteditable="true"] { position:relative; z-index:4; cursor:text; }

.custom-html-section { border-top:1px solid var(--line); background:#fff; }
.custom-html-content { max-width:980px; overflow-x:auto; color:#344e60; font-size:1.05rem; line-height:1.75; }
.custom-html-content > :last-child { margin-bottom:0; }
.custom-html-content h1,.custom-html-content h2,.custom-html-content h3,.custom-html-content h4,.custom-html-content h5,.custom-html-content h6 { margin:1.4em 0 .55em; color:var(--ink); font-family:Georgia,"Times New Roman",serif; font-weight:400; line-height:1.12; }
.custom-html-content h1:first-child,.custom-html-content h2:first-child,.custom-html-content h3:first-child { margin-top:0; }
.custom-html-content h1 { font-size:clamp(2.6rem,5vw,4.8rem); }.custom-html-content h2 { font-size:clamp(2.2rem,4vw,3.8rem); }.custom-html-content h3 { font-size:1.8rem; }
.custom-html-content p,.custom-html-content ul,.custom-html-content ol,.custom-html-content blockquote,.custom-html-content figure,.custom-html-content table,.custom-html-content pre,.custom-html-content details { margin:0 0 1.35em; }
.custom-html-content ul,.custom-html-content ol { padding-left:1.4em; }.custom-html-content li + li { margin-top:.4em; }
.custom-html-content a { color:#174c6c; font-weight:800; text-decoration:underline; text-decoration-color:var(--accent); text-underline-offset:4px; }
.custom-html-content blockquote { padding:22px 28px; border-left:4px solid var(--accent); background:var(--mist); color:#304d60; font-family:Georgia,serif; font-size:1.3rem; }
.custom-html-content img { display:block; max-width:100%; height:auto; }.custom-html-content figcaption { margin-top:8px; color:#6f8290; font-size:.8rem; }
.custom-html-content table { width:100%; min-width:560px; border-collapse:collapse; }.custom-html-content th,.custom-html-content td { padding:12px 14px; border:1px solid #ccd6dc; text-align:left; }.custom-html-content th { background:var(--ink); color:#fff; }
.custom-html-content pre { overflow:auto; padding:18px; background:var(--ink); color:#e4edf2; }.custom-html-content code { font-family:Consolas,"Courier New",monospace; }
.custom-html-content details { padding:15px 18px; border:1px solid #ccd6dc; }.custom-html-content summary { color:var(--ink); font-weight:800; cursor:pointer; }

.custom-content-section { position:relative; padding:110px 0; border-top:1px solid var(--line); background:var(--paper); }
.custom-section-grid { display:grid; gap:64px; align-items:center; }
.custom-content-section.has-image .custom-section-grid { grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr); }
.custom-content-section.layout-image-left .custom-section-copy { order:2; }
.custom-content-section.layout-image-left .custom-section-media { order:1; }
.custom-content-section.layout-image-top .custom-section-grid,.custom-content-section.layout-image-bottom .custom-section-grid { grid-template-columns:1fr; }
.custom-content-section.layout-image-top .custom-section-media { order:-1; }
.custom-content-section.layout-image-bottom .custom-section-copy { order:1; }
.custom-content-section.layout-image-bottom .custom-section-media { order:2; }
.custom-content-section.layout-image-top .custom-section-media,.custom-content-section.layout-image-bottom .custom-section-media { width:min(100%,900px); justify-self:center; }
.custom-section-copy { max-width:820px; }
.custom-section-copy h2 { margin:0 0 26px; }
.custom-section-body { margin:0; color:#455c6d; font-size:1.08rem; line-height:1.8; white-space:pre-line; }
.custom-section-media { display:flex; min-width:0; margin:0; align-items:center; justify-content:center; background:transparent; }
.custom-section-media img { display:block; width:auto; max-width:100%; height:auto; max-height:780px; object-fit:contain; object-position:center; }
.custom-section-media.image-fit-cover { width:100%; aspect-ratio:4/3; overflow:hidden; }
.custom-section-media.image-fit-cover img { width:100%; max-width:none; height:100%; max-height:none; object-fit:cover; clip-path:none; }
.custom-section-media.image-treatment-embedded { padding:clamp(8px,1vw,14px); background:linear-gradient(145deg,rgba(255,255,255,.88),rgba(226,221,211,.7)); box-shadow:inset 1px 1px 0 rgba(255,255,255,.95),inset -1px -1px 0 rgba(53,70,81,.12),0 16px 38px rgba(7,21,33,.10); }
.custom-section-media.image-treatment-trim img { clip-path:inset(8% 8% 4.5%); filter:drop-shadow(0 12px 18px rgba(7,21,33,.10)); }
.custom-section-media.image-treatment-plain { box-shadow:none; }
.custom-theme-dark { background:var(--ink); color:#fff; }
.custom-theme-dark .eyebrow { color:#aebfc9; }
.custom-theme-dark .custom-section-body { color:#c4d0d7; }
.custom-theme-accent { background:#ead2ad; }
.image-only-section { padding:clamp(42px,6vw,88px) 0; }
.image-only-section .custom-section-grid { display:block; }
.image-only-section .custom-section-media { width:min(100%,1100px); margin-inline:auto; }
.preview-section-adder { display:grid; grid-template-columns:1fr 1fr; gap:10px; padding:12px 0; }
.preview-section-adder[hidden] { display:none!important; }
.preview-section-adder button { width:100%; min-height:48px; border:2px dashed rgba(7,21,33,.32); background:rgba(255,255,255,.65); color:var(--ink); font-weight:800; letter-spacing:.07em; text-transform:uppercase; cursor:pointer; transition:border-color .2s ease,background .2s ease; }
.preview-section-adder button:hover,.preview-section-adder button:focus-visible { border-color:var(--accent); background:#fff6e8; outline:none; }
.preview-section-adder .image-adder-button { border-style:solid; border-color:rgba(215,154,74,.7); background:#fff6e8; }
.preview-section-adder button span { display:inline-grid; width:28px; height:28px; margin-right:10px; place-items:center; border-radius:50%; background:var(--accent); font-size:1.25rem; }
.inline-section-tools { position:absolute; z-index:6; top:16px; right:max(16px,calc((100vw - 1220px)/2)); display:flex; flex-wrap:wrap; align-items:end; gap:8px; max-width:calc(100% - 32px); padding:10px; border:1px solid rgba(255,255,255,.18); background:rgba(7,21,33,.94); box-shadow:0 10px 34px rgba(0,0,0,.2); color:#fff; font:700 .72rem/1.2 Arial,sans-serif; letter-spacing:.04em; }
.inline-section-tools[hidden] { display:none!important; }
.inline-section-tools > strong { align-self:center; max-width:150px; color:#f3c98d; font-size:.7rem; text-transform:uppercase; }
.inline-section-tools label { display:grid; gap:5px; text-transform:uppercase; }
.inline-section-tools select,.inline-section-tools button,.inline-section-upload { min-height:36px; padding:8px 10px; border:1px solid rgba(255,255,255,.28); border-radius:0; background:#fff; color:var(--ink); font:700 .75rem/1 Arial,sans-serif; cursor:pointer; }
.inline-section-upload { display:inline-flex!important; align-items:center; text-transform:none!important; }
.inline-section-upload input { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
.inline-section-tools .inline-section-delete { border-color:#d66; background:#742b2b; color:#fff; }
body[data-aps-preview="true"] .studio-removable-image { position:relative; }
body[data-aps-preview="true"] .studio-removable-image > img { cursor:pointer; }
body[data-aps-preview="true"] .studio-removable-image.studio-image-selected { outline:4px solid var(--accent); outline-offset:4px; }
.studio-image-delete { position:absolute; z-index:12; top:14px; right:14px; min-height:42px; padding:10px 14px; border:2px solid #fff; background:#8b2f2f; box-shadow:0 8px 24px rgba(0,0,0,.32); color:#fff; font:800 .75rem/1 Arial,sans-serif; letter-spacing:.06em; text-transform:uppercase; cursor:pointer; opacity:0; pointer-events:none; transform:translateY(-6px); transition:opacity .18s ease,transform .18s ease; }
.studio-image-delete[hidden] { display:none!important; }
.studio-removable-image.studio-image-selected > .studio-image-delete,.studio-image-delete:focus-visible { opacity:1; pointer-events:auto; transform:none; }
.studio-image-delete:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }

.page-intro { min-height:590px; padding:210px 0 100px; background:linear-gradient(125deg,#071521,#16394f); color:white; }
.intro-grid { display:grid; grid-template-columns:1fr 3fr; gap:40px; }
.intro-grid h1 { max-width:980px; margin-bottom:34px; font-size:clamp(3.6rem,7vw,7rem); }
body[data-page="about"] .intro-grid h1 { max-width:920px; font-size:clamp(3rem,5.6vw,5.5rem); }
.intro-grid > div > p { max-width:760px; color:#c4d0d7; font-size:1.12rem; }
.two-column { display:grid; grid-template-columns:1fr 1.4fr; gap:80px; }
.two-column h2 { font-size:clamp(2.8rem,5vw,4.9rem); }
.prose p { color:#455c6d; font-size:1.1rem; }
.wide-image { height:72vh; min-height:520px; }
.wide-image img { width:100%; height:100%; object-fit:cover; }
.wide-image-empty { display:none; }
body[data-aps-preview="true"] .wide-image-empty { display:grid; min-height:260px; height:auto; place-items:center; padding:40px; background:repeating-linear-gradient(135deg,#e7ecef 0,#e7ecef 18px,#f3f5f5 18px,#f3f5f5 36px); }
.empty-native-image { display:grid; gap:6px; max-width:440px; padding:24px 28px; border:2px dashed #8da0ac; background:rgba(255,255,255,.88); color:#526b7c; text-align:center; }
.empty-native-image strong { color:var(--ink); font-family:Georgia,serif; font-size:1.3rem; font-weight:400; }
.value-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); }
.value-grid article { padding:36px 44px 20px 0; border-right:1px solid var(--line); }
.value-grid article + article { padding-left:44px; }
.value-grid article:last-child { border:0; }
.value-grid span,.service-number { color:#718492; font-size:.72rem; }
.value-grid h3 { margin:42px 0 16px; font-family:Georgia,serif; font-size:2rem; font-weight:400; }
.value-grid p { color:#536b7d; }
.services-detail article { display:grid; grid-template-columns:90px 1fr 1fr; gap:46px; align-items:center; padding:60px 0; border-top:1px solid var(--line); }
.services-detail article:last-child { border-bottom:1px solid var(--line); }
.services-detail h2 { font-size:clamp(2.3rem,4vw,4rem); margin-bottom:24px; }
.services-detail p { max-width:600px; color:#536b7d; }
.services-detail img { width:100%; height:310px; object-fit:cover; }
.fine-note { padding-left:16px; border-left:2px solid var(--accent); font-size:.88rem; }
.gallery-page .gallery-item { min-height:420px; }
.contact-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:100px; }
.contact-details > div { padding:28px 0; border-top:1px solid var(--line); }
.contact-details span { display:block; margin-bottom:10px; color:#718492; font-size:.72rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.contact-details a,.contact-details p { display:block; margin:4px 0; font-family:Georgia,serif; font-size:1.55rem; }
.contact-form,.admin-form { display:grid; gap:24px; }
.field-row { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.contact-form label,.admin-form label,.admin-media label { display:grid; gap:8px; color:#607482; font-size:.72rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.contact-form input,.contact-form textarea,.admin-form input,.admin-form textarea,.admin-media input { width:100%; border:0; border-bottom:1px solid #8da0ac; background:transparent; padding:14px 4px; color:var(--ink); outline:none; text-transform:none; letter-spacing:0; }
.contact-form textarea,.admin-form textarea { border:1px solid #8da0ac; padding:14px; resize:vertical; }
.contact-form input:focus,.contact-form textarea:focus,.admin-form input:focus,.admin-form textarea:focus { border-color:var(--accent); }
.contact-form .button { justify-self:start; }
.form-note { color:#718492; font-size:.78rem; }

.partners-intro { background:linear-gradient(125deg,#071521,#173f57 62%,#9b6a31 145%); }
.partners-heading > p { color:#536b7d; }
.partner-grid { border-top:1px solid var(--line); }
.partner-card { display:grid; grid-template-columns:76px 1fr 58px; gap:32px; align-items:center; padding:42px 0; border-bottom:1px solid var(--line); transition:background-color .25s,padding .25s; }
.partner-card:hover { padding-inline:22px; background:#fff; }
.partner-number { align-self:start; padding-top:8px; color:#718492; font-size:.72rem; font-weight:800; letter-spacing:.12em; }
.partner-card h2 { margin:0 0 14px; font-size:clamp(2rem,4vw,4.2rem); }
.partner-card p { max-width:720px; margin-bottom:18px; color:#536b7d; font-size:1rem; }
.partner-domain { color:#6a7f8d; font-size:.7rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.partner-arrow { width:54px; height:54px; display:grid; place-items:center; border:1px solid var(--line); font-size:1.1rem; }
.partner-note { margin:24px 0 0; color:#718492; font-size:.78rem; }

.site-footer { background:#06111a; color:white; padding:80px 0 28px; }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr; gap:80px; }
.footer-grid > div { display:flex; flex-direction:column; align-items:flex-start; }
.footer-brand { margin-bottom:20px; }
.footer-grid p,.footer-grid span { max-width:390px; color:#9fb0ba; }
.footer-grid h2 { margin-bottom:18px; font-family:inherit; font-size:.72rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.footer-grid a { margin:4px 0; color:#d8e0e5; }
.footer-bottom { display:flex; justify-content:space-between; margin-top:70px; padding-top:24px; border-top:1px solid rgba(255,255,255,.15); color:#7f929e; font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; }

.admin-layout { min-height:100vh; display:grid; grid-template-columns:260px 1fr; background:#eef1f2; }
.admin-layout aside { position:sticky; top:0; height:100vh; padding:34px 28px; background:var(--ink); color:white; display:flex; flex-direction:column; align-items:flex-start; }
.admin-layout aside img { width:78px; }
.admin-layout aside p { margin:18px 0 50px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.admin-layout aside a { margin:8px 0; color:#b9c7cf; font-size:.8rem; }
.admin-layout > main { width:min(1000px,calc(100% - 80px)); margin:0 auto; padding:80px 0 120px; }
.admin-layout header { margin-bottom:50px; }
.admin-layout h1 { margin-bottom:16px; font-size:clamp(3rem,6vw,5rem); }
.admin-layout header > p:last-child { max-width:650px; color:#536b7d; }
.admin-layout section { margin-top:30px; padding:38px; background:white; }
.admin-section-head { display:flex; justify-content:space-between; gap:40px; padding-bottom:28px; margin-bottom:32px; border-bottom:1px solid var(--line); }
.admin-section-head > div { display:flex; align-items:center; gap:20px; }
.admin-section-head span { color:#718492; font-size:.7rem; }
.admin-section-head h2 { margin:0; font-family:inherit; font-size:1.45rem; font-weight:800; letter-spacing:-.02em; }
.admin-section-head p { max-width:340px; margin:0; color:#718492; font-size:.85rem; }
.admin-form { grid-template-columns:1fr 1fr; }
.admin-form label:has(textarea),.admin-form .button { grid-column:1/-1; }
.admin-form .button { justify-self:start; }
.upload-form { grid-template-columns:1fr; }
.upload-form label,.upload-form .button { grid-column:auto; }
.admin-notice { position:sticky; z-index:10; top:20px; padding:14px 18px; background:#dfeadf; border-left:4px solid #4b7b50; }
.admin-media { display:grid; gap:22px; }
.admin-media article { display:grid; grid-template-columns:210px 1fr; gap:24px; padding-bottom:22px; border-bottom:1px solid var(--line); }
.admin-media img { width:100%; height:170px; object-fit:cover; }
.admin-media article > div { display:grid; grid-template-columns:1fr 1fr 110px; gap:14px; }
.admin-media article > div > div { grid-column:1/-1; display:flex; gap:10px; }
.admin-media button { padding:9px 14px; border:1px solid var(--ink); background:white; cursor:pointer; }
.admin-media .danger { border-color:#a64c43; color:#8f352c; }

@media (max-width:1120px) {
  .page-shell { width:min(100% - 40px,760px); }
  .site-header { position:absolute; }
  .header-inner { width:calc(100% - 36px); min-height:82px; }
  .brand img { width:48px; height:48px; }
  .menu-toggle { z-index:32; display:grid; gap:5px; width:46px; height:46px; place-content:center; border:1px solid rgba(255,255,255,.4); background:transparent; }
  .menu-toggle span { width:20px; height:1px; background:white; }
  .main-nav { position:fixed; z-index:31; top:0; right:0; width:min(360px,92vw); height:100dvh; overflow:auto; padding:110px 34px 40px; background:var(--ink); display:none; flex-direction:column; align-items:stretch; gap:0; box-shadow:-18px 0 50px rgba(0,0,0,.28); }
  .main-nav.open { display:flex; }
  .main-nav > a { white-space:normal; overflow-wrap:anywhere; }
  .main-nav > a:not(.nav-cta) { padding:18px 0; border-bottom:1px solid rgba(255,255,255,.14); }
  .nav-cta { margin-top:28px; }
  .hero { min-height:720px; }
  .hero-content { padding-top:170px; }
  .hero h1 { font-size:clamp(3.5rem,min(14vw,12vh),6.7rem); }
  .hero-lead { max-width:580px; }
  .statement-grid,.intro-grid { grid-template-columns:1fr; }
  .section-heading { align-items:flex-start; flex-direction:column; }
  .service-list article { grid-template-columns:52px 1fr 54px; }
  .service-list p { grid-column:2; }
  .feature-split { grid-template-columns:1fr; }
  .custom-content-section.has-image .custom-section-grid { grid-template-columns:1fr; }
  .feature-image { min-height:520px; }
  .gallery-grid { grid-template-columns:1fr 1fr; }
  .gallery-item:nth-child(5n+1) { grid-column:auto; }
  .two-column,.contact-grid { grid-template-columns:1fr; gap:50px; }
  .services-detail article { grid-template-columns:60px 1fr; }
  .services-detail img { grid-column:2; }
  .footer-grid { grid-template-columns:1.5fr 1fr; }
  .footer-grid > div:last-child { grid-column:1/-1; }
  .admin-layout { grid-template-columns:1fr; }
  .admin-layout aside { position:relative; height:auto; flex-direction:row; align-items:center; gap:22px; }
  .admin-layout aside img { width:52px; }.admin-layout aside p { margin:0 auto 0 0; }
}
@media (max-height:800px) and (min-width:641px) {
  .hero-content { padding-top:120px; }
  .hero h1 { max-width:800px; margin-bottom:18px; font-size:clamp(3.75rem,9vw,6rem); }
  .hero-lead { font-size:1rem; line-height:1.55; }
  .hero-actions { margin-top:24px; }
  .hero-controls { bottom:18px; }
}
@media (max-width:640px) {
  .canvas-builtin-block.canvas-image-left,.canvas-builtin-block.canvas-image-right { grid-template-columns:1fr; }
  .canvas-builtin-block.canvas-image-left > .canvas-builtin-image { order:-1; }
  .canvas-builtin-block.canvas-image-right > .canvas-builtin-image { order:2; }
  .canvas-builtin-block.canvas-image-left > .canvas-builtin-image,.canvas-builtin-block.canvas-image-right > .canvas-builtin-image { min-height:0; }
  .page-shell { width:calc(100% - 32px); }
  .section-space { padding:78px 0; }
  .custom-content-section { padding:78px 0; }
  .image-only-section { padding:36px 0; }
  .custom-section-grid { gap:34px; }
  .custom-section-media img { width:auto; max-width:100%; height:auto; max-height:none; }
  .inline-section-tools { position:static; display:grid; grid-template-columns:1fr 1fr; max-width:none; margin:28px 16px -42px; }
  .preview-section-adder { grid-template-columns:1fr; }
  .inline-section-tools label:first-child,.inline-section-tools .inline-section-delete { grid-column:1/-1; }
  .inline-section-tools select,.inline-section-tools button,.inline-section-upload { width:100%; }
  .brand-copy { display:none; }
  .hero { min-height:760px; }
  .hero-content { padding-top:135px; }
  .hero h1 { font-size:clamp(3.25rem,16vw,5.2rem); }
  .hero-actions { align-items:flex-start; flex-direction:column; gap:20px; margin-top:28px; }
  .hero-controls { bottom:16px; }.slide-dots { display:none; }
  .service-list article { grid-template-columns:36px 1fr; gap:18px; }
  .service-list a { grid-column:2; }.service-list p { grid-column:2; }
  .feature-image { min-height:390px; }.feature-copy { padding:70px 26px; }
  .gallery-grid { grid-template-columns:1fr; }.gallery-item { min-height:330px; }
  .contact-band .page-shell { align-items:flex-start; flex-direction:column; }
  .page-intro { min-height:520px; padding-top:160px; }
  .value-grid { grid-template-columns:1fr; }.value-grid article,.value-grid article + article { padding:30px 0; border-right:0; border-bottom:1px solid var(--line); }
  .services-detail article { grid-template-columns:1fr; }.services-detail img { grid-column:auto; }.services-detail .service-number { margin-bottom:-25px; }
  .field-row { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:1fr; gap:42px; }.footer-grid > div:last-child { grid-column:auto; }.footer-bottom { gap:16px; flex-direction:column; }
  .lightbox { padding:70px 16px; }.lightbox-arrow { top:auto; bottom:18px; }.lightbox figure { max-width:100%; }
  .partner-card { grid-template-columns:36px 1fr; gap:16px; padding:30px 0; }.partner-card:hover { padding-inline:10px; }.partner-arrow { grid-column:2; width:46px; height:46px; }
  .admin-layout aside { flex-wrap:wrap; }.admin-layout > main { width:calc(100% - 28px); padding-top:42px; }.admin-layout section { padding:24px 18px; }.admin-section-head { flex-direction:column; }.admin-form { grid-template-columns:1fr; }.admin-form label:has(textarea),.admin-form .button { grid-column:auto; }.admin-media article { grid-template-columns:1fr; }.admin-media article > div { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; animation-duration:.01ms!important; transition-duration:.01ms!important; } }
