/* Refined Navy: native scroll, original brand, progressively enhanced motion. */
:root { --rn-navy:#080e1a; --rn-paper:#f8f7f4; --rn-orange:#e8550f; --rn-ink:#101928; --rn-muted:#657080; --rn-ease:cubic-bezier(.22,1,.36,1); }
html { scroll-behavior:smooth; scroll-padding-top:110px; }
body.changestyle-body { cursor:auto; }
.rn-home { background:var(--rn-navy); color:var(--rn-paper); font-family:Inter,Arial,sans-serif; overflow:clip; }
.rn-home *, .rn-home *::before, .rn-home *::after { box-sizing:border-box; }
.rn-home h1,.rn-home h2,.rn-home h3,.rn-home p { margin:0; }
.rn-home a { color:inherit; text-decoration:none; }
.rn-home a:focus-visible,.rn-desktop-nav a:focus-visible { outline:3px solid var(--rn-orange); outline-offset:6px; }
.rn-shell { width:min(1320px,calc(100% - 96px)); margin-inline:auto; }
.rn-section { padding-block:100px; }
.rn-home h1,.rn-home h2 { font-family:'DM Serif Display',Georgia,serif; font-weight:400; letter-spacing:-.035em; }
.rn-home h1 { font-size:clamp(3rem,5.1vw,5rem); line-height:1.08; }
.rn-home h2 { font-size:clamp(2.4rem,3.6vw,3.7rem); line-height:1.13; }
.rn-home h3 { font-size:1.55rem; font-weight:500; letter-spacing:-.035em; line-height:1.3; }
.rn-home p { line-height:1.75; }
.rn-eyebrow { color:#f57d42; font-size:.75rem; letter-spacing:.16em; font-weight:600; margin-bottom:24px!important; }
.rn-hero { padding:160px 0 76px; }
.rn-hero-grid { display:grid; grid-template-columns:1.05fr 1fr; gap:38px; align-items:center; min-height:510px; }
.rn-hero-copy { position:relative; z-index:2; }
.rn-hero h1 span { color:#d8d4cf; }
.rn-hero h1 i { color:var(--rn-orange); font-style:normal; margin-left:-.03em; }
.rn-intro { max-width:530px; font-size:1.0625rem; color:#bec4ce; margin-top:26px!important; }
.rn-actions { display:flex; gap:26px; align-items:center; flex-wrap:wrap; margin-top:34px; }
.rn-button { display:inline-flex; justify-content:center; align-items:center; gap:26px; padding:18px 24px; border:1px solid transparent; border-radius:3px; background:#c94a09; color:#fff!important; font-size:.9375rem; font-weight:600; line-height:1.5; min-height:54px; transition:background .25s,transform .4s var(--rn-ease),box-shadow .4s; }
.rn-button:hover { background:#bc4105; transform:translateY(-3px); box-shadow:0 9px 26px #0002; }
.rn-arrow { display:inline-block; transition:transform .4s var(--rn-ease); font-family:Arial,sans-serif; }
.rn-button:hover .rn-arrow,.rn-link:hover .rn-arrow { transform:translate(3px,-3px); }
.rn-link { display:inline-flex; gap:22px; align-items:center; font-size:.9375rem; font-weight:500; padding-block:12px; position:relative; }
.rn-link::after { content:''; height:1px; background:currentColor; position:absolute; bottom:5px; left:0; right:0; opacity:.4; transform-origin:left; transition:transform .45s var(--rn-ease),opacity .3s; }
.rn-link:hover::after { transform:scaleX(.65); opacity:1; }
.rn-since { font-size:.75rem; color:#abb3bf; display:flex; gap:12px; align-items:center; margin-top:52px!important; }
.rn-since span { width:26px; height:1px; background:var(--rn-orange); }
.rn-showcase { position:relative; height:510px; isolation:isolate; transform:translateY(var(--rn-y,0px)); }
.rn-preview { position:absolute; display:block; overflow:hidden; border-radius:5px; background:var(--rn-paper); color:var(--rn-ink)!important; box-shadow:0 30px 65px #0004; transition:rotate .7s var(--rn-ease),translate .7s var(--rn-ease),box-shadow .7s; }
.rn-preview-wine { width:84%; top:0; left:0; rotate:1.5deg; }
.rn-preview-roof { width:62%; right:-10px; top:215px; rotate:3deg; z-index:2; background:#173148; color:#fff!important; }
.rn-preview:hover { rotate:0deg; translate:0 -9px; box-shadow:0 35px 65px #0006; }
.rn-preview:focus-visible { outline-offset:8px!important; }
.rn-preview-bar { height:47px; display:flex; align-items:center; justify-content:space-between; padding:0 22px; font-size:.75rem; }
.rn-preview-bar>span:first-child { font-family:Georgia,serif; font-size:1.2rem; }
.rn-preview-roof .rn-preview-bar>span:first-child { font-family:Inter,Arial,sans-serif; font-size:1rem; font-weight:600; }
.rn-preview-image { height:320px; position:relative; overflow:hidden; }
.rn-preview-image>img { width:100%; height:100%; object-fit:cover; display:block; transition:scale 1.1s var(--rn-ease); }
.rn-preview-wine .rn-preview-image>img { object-position:30% 60%; }
.rn-preview-roof .rn-preview-image { height:220px; }
.rn-preview-roof .rn-preview-image>img { object-position:50% 25%; }
.rn-preview:hover img { scale:1.04; }
.rn-preview-caption { position:absolute; inset:0; display:flex; flex-direction:column; justify-content:flex-end; padding:26px; background:linear-gradient(transparent 40%,#070e18b3); color:white; }
.rn-preview-caption small { font-size:.75rem; margin-bottom:6px; }
.rn-preview-caption>span { font-family:Georgia,serif; font-size:2rem; }
.rn-preview-bottom { display:flex; align-items:center; justify-content:space-between; padding:15px 20px; font-size:.75rem; line-height:1.5; gap:16px; }
.rn-showcase-index { position:absolute; bottom:-30px; left:0; font-size:.65rem; letter-spacing:.15em; color:#96a2b3; }
.rn-work { background:var(--rn-paper); color:var(--rn-ink); }
.rn-work .rn-eyebrow,.rn-approach .rn-eyebrow { color:#ad400d; }
.rn-section-heading { display:grid; grid-template-columns:1.25fr 1fr; align-items:end; gap:70px; margin-bottom:44px; }
.rn-section-heading>p,.rn-section-heading>div>p:not(.rn-eyebrow) { color:#535d6b; max-width:470px; font-size:1rem; }
.rn-project-grid { display:grid; grid-template-columns:1.1fr 1fr; gap:34px; }
.rn-project { min-width:0; scroll-margin-top:115px; }
.rn-project:nth-child(2) { padding-top:52px; }
.rn-project-media { aspect-ratio:1.45; border-radius:4px; overflow:hidden; position:relative; background:#d4d6d7; }
.rn-project-media img { width:100%; height:100%; object-fit:cover; transition:transform 1.15s var(--rn-ease),filter .7s; }
.rn-project-media-wine img { object-position:30% 65%; }
.rn-project-media-roof img { object-position:50% 25%; }
.rn-project-link:hover img,.rn-project-link:focus-visible img { transform:scale(1.055); filter:brightness(.87); }
.rn-project-open { position:absolute; bottom:24px; right:24px; padding:12px 18px; background:var(--rn-paper); display:flex; align-items:center; gap:20px; border-radius:2px; font-size:.8125rem; transform:translateY(8px); opacity:0; transition:opacity .3s,transform .5s var(--rn-ease); }
.rn-project-link:hover .rn-project-open,.rn-project-link:focus-visible .rn-project-open { opacity:1; transform:none; }
.rn-project-meta { display:flex; align-items:center; gap:16px; margin-top:21px; }
.rn-project-meta>span:not(.rn-arrow) { margin-left:auto; font-size:.75rem; color:#59616f; }
.rn-project-meta>.rn-arrow { margin-left:auto; font-size:1.6rem; }
.rn-project-meta>span:not(.rn-arrow)+.rn-arrow { margin-left:0; }
.rn-project-description { font-size:.875rem; color:#626a75; margin-top:6px!important; }
.rn-expertise { background:#0c1422; }
.rn-expertise-grid { display:grid; grid-template-columns:1fr 1.2fr; gap:100px; align-items:start; }
.rn-sticky { position:sticky; top:130px; }
.rn-section-intro { margin:25px 0!important; color:#b9c2cf; max-width:390px; }
.rn-service { display:grid; grid-template-columns:32px 1fr 20px; gap:18px; padding:34px 0; border-top:1px solid #ffffff26; transition:padding .4s var(--rn-ease),border-color .4s; }
.rn-service:last-child { border-bottom:1px solid #ffffff26; }
.rn-service:hover { padding-left:12px; border-color:#e8550f; }
.rn-service-number { color:#ef895b; font-size:.75rem; margin-top:5px; }
.rn-service p { font-size:.9375rem; color:#b9c2cf; margin-top:14px; }
.rn-service small { display:block; font-size:.75rem; color:#8f9bae; margin-top:19px; line-height:1.7; }
.rn-service>.rn-arrow { font-size:1.25rem; }
.rn-service:hover>.rn-arrow { transform:translate(3px,-3px); color:#ef895b; }
.rn-approach { background:var(--rn-paper); color:var(--rn-ink); }
.rn-approach .rn-link { margin-top:15px; }
.rn-steps { list-style:none; margin:58px 0 0; padding:0; display:grid; grid-template-columns:repeat(3,1fr); gap:38px; }
.rn-steps li { padding:22px 0 0; border-top:1px solid #1221383d; }
.rn-step-index { display:block; font-size:.75rem; color:#aa420f; margin-bottom:30px; }
.rn-steps h3 { margin-bottom:13px; }
.rn-steps p { color:#535d6b; font-size:.9375rem; }
.rn-closing { position:relative; padding-block:110px; }
.rn-closing .rn-shell { position:relative; }
.rn-closing h2 { max-width:850px; font-size:clamp(3rem,5.5vw,5.5rem); }
.rn-closing p:not(.rn-eyebrow) { color:#bec4ce; margin:25px 0 30px; }
.rn-closing-mark { position:absolute; width:230px; height:auto; right:0; top:20%; opacity:.15; rotate:-8deg; pointer-events:none; }
/* Shared navigation and footer extend the existing WordPress structure. */
.cs-header { background:var(--rn-navy)!important; border-bottom:1px solid #ffffff0d; height:96px!important; transition:height .3s,box-shadow .3s; }
.cs-header::before,.cs-header::after { display:none!important; }
.cs-header.is-scrolled { height:78px!important; box-shadow:0 4px 25px #0002; }
.cs-header .cs-container--header { max-width:1416px; padding-inline:48px; }
.cs-header .cs-logo { color:#fafaf8!important; gap:14px!important; }
.cs-header .cs-logo img { width:43px!important; height:38px!important; object-fit:contain; }
.cs-header .cs-logo span { font:700 1.45rem/1 Inter,Arial,sans-serif; letter-spacing:.025em; text-transform:uppercase; }
.rn-desktop-nav { display:flex; align-items:center; gap:30px; margin-left:auto; margin-right:24px; }
.rn-desktop-nav a { color:#e8e9ed; text-decoration:none; font-size:.875rem; position:relative; padding-block:12px; }
.rn-desktop-nav a:not(.rn-nav-cta)::after { content:''; position:absolute; height:1px; bottom:5px; inset-inline:0; background:var(--rn-orange); scale:0 1; transform-origin:left; transition:scale .3s; }
.rn-desktop-nav a:hover::after { scale:1; }
.rn-desktop-nav .rn-nav-cta { background:#c94a09; border-radius:3px; padding:13px 19px; color:white; transition:background .25s; }
.rn-desktop-nav .rn-nav-cta:hover { background:#bc4105; }
.cs-header__actions { gap:10px!important; }
.cs-header .cs-lang-toggle { background:transparent; }
.cs-header .cs-lang-toggle__link { color:#c9d0db!important; }
.cs-header .cs-lang-toggle__link.is-active { color:white!important; }
.cs-header .cs-theme-toggle { color:#eee!important; border-color:#ffffff30!important; }
.cs-menu-toggle { color:white!important; }
.cs-menu-toggle span { background:white!important; }
.cs-cursor-glow,.cs-cursor-dot { display:none!important; }
.cs-footer { background:#080e1a!important; color:#bcc4d0!important; border-top:1px solid #ffffff20; padding-block:60px 24px!important; }
.cs-footer .cs-logo { color:#fff!important; }
.cs-footer .cs-logo img { width:36px; height:auto; }
.cs-footer .cs-footer__heading { color:#eee!important; }
.cs-footer a:hover { color:#f28753!important; }
.rn-skip { position:fixed; left:20px; top:-100px; z-index:10001; padding:14px 24px; background:white; color:#080e1a; }
.rn-skip:focus { top:12px; }
/* A light preference keeps the editorial portfolio and gives the hero an ivory variant. */
:root[data-theme=light] .rn-hero { background:#eeede9; color:#101928; }
:root[data-theme=light] .rn-hero h1 span { color:#5e6671; }
:root[data-theme=light] .rn-hero .rn-intro,:root[data-theme=light] .rn-since { color:#535d6b; }
:root[data-theme=light] .rn-hero .rn-eyebrow { color:#ad400d; }
/* Reveal is opt-in: content stays visible with JS unavailable. */
@media (prefers-reduced-motion:no-preference) {
    .rn-enter { animation:rn-enter .85s var(--rn-ease) both; }
    .rn-delay-1 { animation-delay:.1s; } .rn-delay-2 { animation-delay:.18s; } .rn-delay-3 { animation-delay:.25s; }
    [data-rn-reveal].rn-pending { opacity:0; transform:translateY(25px); }
    [data-rn-reveal] { transition:opacity .8s var(--rn-ease),transform .8s var(--rn-ease); }
}
@keyframes rn-enter { from { opacity:0; translate:0 18px; } to { opacity:1; translate:0 0; } }
@media (max-width:1150px) {
    .rn-desktop-nav { gap:20px; margin-right:18px; }
    .rn-hero-grid { gap:26px; } .rn-home h1 { font-size:clamp(2.7rem,5.2vw,4rem); }
    .rn-showcase { height:440px; } .rn-preview-image { height:280px; } .rn-preview-roof { top:190px; } .rn-preview-roof .rn-preview-image { height:180px; }
    .rn-expertise-grid { gap:55px; }
}
@media (max-width:850px) {
    .rn-shell { width:calc(100% - 48px); } .cs-header .cs-container--header { padding-inline:24px; }
    .rn-desktop-nav { display:none; } .rn-hero { padding-top:140px; padding-bottom:78px; }
    .rn-hero-grid { grid-template-columns:1fr; gap:50px; } .rn-home h1 { font-size:clamp(2.6rem,7.8vw,4.7rem); }
    .rn-hero-copy { max-width:690px; } .rn-intro { max-width:590px; } .rn-since { margin-top:26px!important; }
    .rn-showcase { width:min(570px,95%); margin-inline:auto; height:490px; } .rn-preview-roof { right:0; top:200px; }
    .rn-section { padding-block:70px; } .rn-section-heading { gap:24px; grid-template-columns:1fr; }
    .rn-expertise-grid { grid-template-columns:1fr; gap:40px; } .rn-sticky { position:static; }
    .rn-section-intro { max-width:570px; } .rn-steps { gap:24px; } .rn-closing-mark { width:150px; right:0; top:5%; }
    .rn-project-meta { flex-wrap:wrap; gap:6px 12px; } .rn-project-meta>span:not(.rn-arrow) { margin-left:0; } .rn-project-meta h3 { width:100%; } .rn-project-meta>span:not(.rn-arrow)+.rn-arrow { margin-left:auto; }
}
@media (max-width:560px) {
    .cs-header,.cs-header.is-scrolled { height:78px!important; } .cs-header .cs-container--header { padding-inline:20px; }
    .cs-header .cs-logo span { font-size:1.05rem; } .cs-header .cs-logo img { width:32px!important; height:28px!important; } .cs-header .cs-logo { gap:9px!important; }
    .cs-header__actions { gap:6px!important; } .cs-header .cs-lang-toggle { display:none; }
    .rn-shell { width:calc(100% - 40px); } .rn-hero { padding:116px 0 65px; }
    .rn-eyebrow { font-size:.6875rem; letter-spacing:.11em; margin-bottom:21px!important; }
    .rn-home h1 { font-size:clamp(2.45rem,9.3vw,3.3rem); } .rn-intro { margin-top:24px!important; font-size:1rem; }
    .rn-actions { gap:15px; margin-top:27px; } .rn-button { padding:15px 18px; gap:15px; font-size:.875rem; } .rn-link { font-size:.875rem; gap:12px; }
    .rn-showcase { height:350px; width:96%; } .rn-preview-wine { width:88%; } .rn-preview-roof { width:66%; top:140px; right:-4px; }
    .rn-preview-bar { height:34px; padding-inline:12px; } .rn-preview-bar>span:first-child { font-size:1rem; } .rn-preview-image { height:205px; }
    .rn-preview-roof .rn-preview-image { height:149px; } .rn-preview-bottom { font-size:.625rem; padding:10px 12px; } .rn-preview-caption { padding:16px; } .rn-preview-caption>span { font-size:1.4rem; }
    .rn-preview-caption small { font-size:.625rem; } .rn-showcase-index { bottom:-16px; }
    .rn-section { padding-block:56px; } .rn-section-heading { margin-bottom:30px; }
    .rn-home h2 { font-size:2.35rem; } .rn-project-grid { grid-template-columns:1fr; gap:36px; } .rn-project:nth-child(2) { padding-top:0; }
    .rn-project-media { aspect-ratio:1.25; } .rn-project-meta h3 { width:auto; margin-right:auto; } .rn-project-meta { gap:10px; }
    .rn-project-meta>span:not(.rn-arrow) { font-size:.6875rem; } .rn-project-meta>.rn-arrow { font-size:1.2rem; }
    .rn-project-open { opacity:1; transform:none; bottom:14px; right:14px; font-size:.75rem; padding:9px 13px; }
    .rn-service { grid-template-columns:24px 1fr 18px; gap:12px; } .rn-home h3 { font-size:1.4rem; }
    .rn-steps { grid-template-columns:1fr; gap:28px; margin-top:35px; } .rn-step-index { margin-bottom:16px; }
    .rn-closing h2 { font-size:2.7rem; position:relative; z-index:1; } .rn-closing-mark { width:100px; opacity:.09; }
}
@media (prefers-reduced-motion:reduce) {
    html { scroll-behavior:auto!important; } .rn-home *, .rn-home *::before,.rn-home *::after { animation:none!important; transition:none!important; }
    .rn-showcase { transform:none!important; } [data-rn-reveal] { opacity:1!important; transform:none!important; }
}
body.menu-open { overflow:hidden; }
.rn-menu-languages ul { list-style:none; display:flex; gap:24px; padding:0; margin:0; }
.rn-menu-languages a { display:inline-block; padding-block:12px; text-underline-offset:6px; }
.rn-menu-languages .current-lang a { color:var(--rn-orange); }
.cs-menu-overlay { overflow-y:auto; overscroll-behavior:contain; }
@media (hover:none) { .rn-project-open { opacity:1; transform:none; } }
/* Full service offering: each discipline is visible and has its own destination. */
.rn-expertise .rn-section-heading>p { color:#b9c2cf; }
.rn-catalogue { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-bottom:1px solid #ffffff26; }
.rn-service-detail { display:grid; grid-template-columns:1fr auto; grid-template-rows:auto auto 1fr; position:relative; gap:18px 20px; padding:30px 26px 36px; border-top:1px solid #ffffff26; transition:background .35s,border-color .35s; }
.rn-service-detail:not(:nth-child(3n)) { border-right:1px solid #ffffff18; }
.rn-service-detail .rn-service-number { grid-column:1; margin:0; }
.rn-service-detail h3 { grid-column:1/-1; font-size:1.45rem; }
.rn-service-detail p { grid-column:1/-1; font-size:.9375rem; color:#b9c2cf; }
.rn-service-detail>.rn-arrow { grid-column:2; grid-row:1; font-size:1.25rem; color:#d9dfe8; }
.rn-service-detail:hover,.rn-service-detail:focus-visible { background:#142031; border-top-color:#e8550f; }
.rn-service-detail:hover>.rn-arrow { color:#f58b57; transform:translate(3px,-3px); }
.rn-service-detail:focus-visible { z-index:1; outline-offset:-4px!important; }
@media (min-width:901px) {
    .cs-header .cs-menu-toggle { display:none; }
    .rn-desktop-nav { display:flex; }
    .cs-header .cs-container--header { width:100%; }
}
@media (max-width:1100px) and (min-width:901px) {
    .cs-header .cs-container--header { padding-inline:28px; }
    .rn-desktop-nav { gap:20px; margin-right:18px; }
    .cs-header .cs-logo span { font-size:1.25rem; }
}
@media (max-width:900px) {
    .rn-desktop-nav { display:none; }
    .cs-header .cs-menu-toggle { display:flex; }
    .rn-catalogue { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .rn-service-detail:not(:nth-child(3n)) { border-right:0; }
    .rn-service-detail:nth-child(odd) { border-right:1px solid #ffffff18; }
}
@media (max-width:560px) {
    .rn-catalogue { grid-template-columns:1fr; }
    .rn-service-detail { padding:26px 0; }
    .rn-service-detail:nth-child(odd) { border-right:0; }
}
/* Keep Elementor's generic image height rule from leaving gaps in media frames. */
.rn-home .rn-project-media img,.rn-home .rn-preview-image>img { display:block; width:100%; height:100%; object-fit:cover; }
