/* Shared masthead. Keep the complete supplied logo, including its lettering. */
body.reference-site,body{--header-expanded:100px;--header-compact:78px}
body .site-header{background:#fff;border-bottom:1px solid #e8e4dc;box-shadow:none}
body .site-header .header-inner{width:calc(100% - 64px);max-width:1440px;padding:0;gap:26px}
body .site-header .brand{gap:10px;color:#102b45;letter-spacing:0;flex-shrink:0}
body .site-header .brand .brand-mark{width:76px;height:82px;overflow:visible;background:none!important;border-radius:0}
body .site-header.is-compact .brand .brand-mark{width:58px;height:64px}
body .site-header .brand>span.brand-name{display:flex;flex-direction:column;gap:4px;font-family:var(--sans);white-space:nowrap;letter-spacing:0}
body .site-header .brand-name small{font:400 10px/1.5 var(--sans);letter-spacing:.08em;color:#526574}
body .site-header .brand-title{font:700 21px/1.4 var(--sans);letter-spacing:.015em}
body .site-header .desktop-nav{display:flex;flex:1;justify-content:flex-end;gap:22px}
body .site-header .desktop-nav a{font:500 13px/1.5 var(--sans);padding:14px 0;position:relative;color:#243c50}
body .site-header .desktop-nav a:after{content:'';position:absolute;bottom:6px;left:0;right:0;height:1px;background:#aa8448;transform:scaleX(0);transition:transform .18s ease}
body .site-header .desktop-nav a:hover:after,body .site-header .desktop-nav a:focus-visible:after{transform:scaleX(1)}
body .site-header .header-booking,body .site-header.is-compact .header-booking{font:500 14px/1.5 var(--sans);min-height:50px;padding:13px 20px;gap:18px;color:#fff;background:#102f46;border:1px solid #102f46;box-shadow:none;border-radius:3px;margin:0;flex-shrink:0;white-space:nowrap}
body .site-header .header-booking:hover{background:#20475e;filter:none}
body .site-header .header-booking .icon{width:18px;height:18px;color:#e4c48c}
body .site-header .menu-toggle{display:none}
body .site-header a:focus-visible,body .site-header button:focus-visible{outline:2px solid #8e682e;outline-offset:4px}
body .site-header .mobile-nav[hidden]{display:none}
body .site-header .mobile-nav:not([hidden]){position:absolute;top:100%;left:0;right:0;display:grid;grid-template-columns:1fr 1fr;gap:0 28px;padding:20px 32px 28px;background:#fff;box-shadow:0 18px 24px #102f4614;border-top:1px solid #e8e4dc}
body .site-header .mobile-nav a{display:flex;align-items:center;justify-content:space-between;min-height:52px;padding:14px 4px;border-bottom:1px solid #e8e4dc;font:500 14px/1.6 var(--sans);color:#18364d}
body .site-header .mobile-nav a:after{content:'›';color:#9b7841;font:400 20px/1 var(--sans);margin-left:12px}
@media(max-width:1279px){
 body .site-header .desktop-nav{display:none}
 body .site-header .header-booking{margin-left:auto}
 body .site-header .menu-toggle{display:flex;position:relative;align-items:center;justify-content:center;flex-direction:column;gap:5px;width:46px;min-width:46px;height:48px;padding:10px;background:none;border:0;color:#102f46;cursor:pointer;flex-shrink:0}
 body .site-header .menu-toggle span{display:block;width:22px;height:1.5px;background:currentColor;transition:transform .18s,opacity .18s}
 body .site-header .menu-toggle[aria-expanded="true"] span:first-child{transform:translateY(6.5px) rotate(45deg)}
 body .site-header .menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
 body .site-header .menu-toggle[aria-expanded="true"] span:last-child{transform:translateY(-6.5px) rotate(-45deg)}
}
@media(max-width:600px){
 body.reference-site,body{--header-expanded:82px;--header-compact:70px}
 body .site-header .header-inner{width:100%;padding:0 14px;gap:10px}
 body .site-header .brand{gap:5px}
 body .site-header .brand .brand-mark{width:52px;height:64px}
 body .site-header.is-compact .brand .brand-mark{width:44px;height:54px}
 body .site-header .brand-name small{display:none}
 body .site-header .brand-title{font-size:15px;line-height:1.5;letter-spacing:.02em}
 body .site-header .brand-title>span{display:block}
 body .site-header .header-booking,body .site-header.is-compact .header-booking{min-height:44px;padding:10px 12px;font-size:12px;gap:8px;margin-left:auto}
 body .site-header .header-booking .icon{display:block;width:14px;height:14px}
 body .site-header .menu-toggle{width:44px;min-width:44px;height:44px;padding:10px}
 body .site-header .mobile-nav:not([hidden]){padding:12px 20px 24px;gap:0 20px}
 body .site-header .mobile-nav a{font-size:13px}
}
@media(max-width:360px){
 body .site-header .header-inner{padding:0 10px;gap:6px}
 body .site-header .brand .brand-mark{width:44px;height:58px}
 body .site-header .brand-title{font-size:13px}
 body .site-header .header-booking,body .site-header.is-compact .header-booking{padding-inline:9px;font-size:11px;gap:6px}
}
/* A single hero; service cards remain available in the section below. */
body.reference-site .hero-section{grid-template-columns:minmax(0,1fr);gap:0;margin-top:20px;margin-bottom:26px}
@media(min-width:901px){
 body.reference-site .hero-main,body.reference-site .hero-copy{min-height:600px}
 body.reference-site .hero-photo{inset:0;background-position:center top}
 body.reference-site .hero-main:after{background:linear-gradient(90deg,rgba(8,31,44,.94) 0%,rgba(8,31,44,.85) 27%,rgba(8,31,44,.4) 51%,rgba(8,31,44,.03) 75%)}
 body.reference-site .hero-copy{padding:60px;justify-content:center}
 body.reference-site .area-label{position:static;margin:0 0 26px;font-size:14px;padding:7px 12px}
 body.reference-site .hero-copy h1{font-size:clamp(42px,4.3vw,66px);line-height:1.45}
 body.reference-site .hero-sub{font-size:clamp(21px,2vw,29px)}
 body.reference-site .hero-message{font-size:25px;margin:26px 0 28px}
 body.reference-site .hero-message .mobile-break{display:block}
 body.reference-site .hero-button{font-size:17px;min-height:58px;padding-inline:24px}
 body.reference-site .hero-note{font-size:12px;font-weight:400}
}
@media(min-width:901px) and (max-width:1199px){body.reference-site .hero-copy{padding:40px}body.reference-site .hero-copy h1{font-size:44px}body.reference-site .hero-sub{font-size:22px}}
@media(max-width:600px){body.reference-site .hero-section{margin-top:12px;margin-bottom:20px}}
@media(prefers-reduced-motion:reduce){body .site-header *,body .site-header *:after{transition:none!important}}

/* v63: a restrained serif wordmark, matched to the supplied navy/gold logo. */
@font-face{font-family:MakaseruSerif;src:url('assets/NotoSerifJP-600.woff2') format('woff2');font-weight:600;font-display:swap}
body .site-header .brand-title{font-family:MakaseruSerif,'Yu Mincho',serif;font-weight:600;font-size:22px;line-height:1.5;letter-spacing:.055em;color:#142f46}
body .site-header .brand-name small{font-size:10px;letter-spacing:.12em;color:#7a653f}
body .site-footer .brand>span:not(.brand-mark){font-family:MakaseruSerif,'Yu Mincho',serif;font-weight:600;letter-spacing:.045em}
@media(max-width:600px){body .site-header .brand-title{font-size:15px;letter-spacing:.07em;line-height:1.55}}
@media(max-width:360px){body .site-header .brand-title{font-size:13px;letter-spacing:.035em}}
