@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&family=Source+Sans+3:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400&family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;1,400&display=swap");

/* tokens/fonts.css */
/* More2That webfonts.
   NOTE: no vendor font binaries were supplied. These are the nearest Google Fonts
   matches to the logo lockup (see readme.md > "Font substitution"). */


/* tokens/colors.css */
:root{
/* --- Base palette: Ocean --- */
--ocean-900:#12283a;--ocean-800:#1b3d55;--ocean-700:#234a67;--ocean-600:#2d5a7b;--ocean-500:#3b6f93;--ocean-400:#5b8cab;--ocean-300:#8fb2c8;--ocean-200:#c2d6e2;--ocean-100:#e3edf3;--ocean-050:#f2f7fa;
/* --- Base palette: Sand --- */
--sand-900:#6d6249;--sand-800:#8b7d61;--sand-700:#a8987a;--sand-600:#c2b59b;--sand-500:#d0c5ae;--sand-400:#ded6c5;--sand-300:#eae4d8;--sand-200:#f2eee6;--sand-100:#f8f5ef;--sand-050:#fcfaf6;
/* --- Base palette: Lagoon (imagery-derived accent, pools & shallows) --- */
--lagoon-700:#1f7d78;--lagoon-600:#2a9d95;--lagoon-500:#4fb8ae;--lagoon-300:#93d6cf;--lagoon-100:#dcf1ee;
/* --- Neutrals: warm-leaning greys, never pure grey --- */
--neutral-950:#0f1720;--neutral-900:#1c2630;--neutral-800:#333e49;--neutral-700:#4c5762;--neutral-600:#66717c;--neutral-500:#868f99;--neutral-400:#a8b0b8;--neutral-300:#cbd1d6;--neutral-200:#e2e6ea;--neutral-100:#f0f2f4;--neutral-050:#f8f9fa;--white:#ffffff;
/* --- Semantic base --- */
--green-600:#2f7d63;--green-100:#e4f1eb;--amber-600:#c98a2e;--amber-100:#faf0dd;--red-600:#b3453a;--red-100:#f8e7e5;

/* ============ Semantic aliases ============ */
--brand-primary:var(--ocean-600);--brand-primary-hover:var(--ocean-700);--brand-primary-active:var(--ocean-800);--brand-deep:var(--ocean-900);
--brand-accent:var(--sand-600);--brand-accent-hover:var(--sand-700);--brand-accent-soft:var(--sand-200);
--brand-lagoon:var(--lagoon-600);

--text-heading:var(--ocean-900);--text-body:var(--neutral-800);--text-muted:var(--neutral-600);--text-subtle:var(--neutral-500);--text-on-dark:var(--white);--text-on-dark-muted:#c8d5de;--text-link:var(--ocean-600);--text-link-hover:var(--ocean-800);--text-accent:var(--sand-800);--text-price:var(--ocean-900);

--surface-page:var(--sand-050);--surface-card:var(--white);--surface-raised:var(--white);--surface-sunken:var(--sand-100);--surface-inverse:var(--ocean-900);--surface-brand:var(--ocean-600);--surface-accent-soft:var(--sand-200);--surface-info-soft:var(--ocean-050);--surface-overlay:rgba(18,40,58,.55);

--border-subtle:var(--neutral-200);--border-default:var(--neutral-300);--border-strong:var(--ocean-300);--border-accent:var(--sand-500);--border-inverse:rgba(255,255,255,.22);

--status-success-fg:var(--green-600);--status-success-bg:var(--green-100);--status-warning-fg:var(--amber-600);--status-warning-bg:var(--amber-100);--status-danger-fg:var(--red-600);--status-danger-bg:var(--red-100);--status-info-fg:var(--ocean-600);--status-info-bg:var(--ocean-100);

--focus-ring:var(--lagoon-600);

/* Protection gradients for text over imagery */
--scrim-bottom:linear-gradient(to top,rgba(18,40,58,.82) 0%,rgba(18,40,58,.45) 45%,rgba(18,40,58,0) 100%); /* @kind other */
--scrim-full:linear-gradient(to top,rgba(18,40,58,.86) 0%,rgba(18,40,58,.62) 45%,rgba(18,40,58,.34) 80%,rgba(18,40,58,.18) 100%); /* @kind other */
/* The one sanctioned gradient: sand hairline used as a divider / accent rule */
--rule-accent:linear-gradient(90deg,var(--sand-600) 0%,var(--sand-300) 55%,rgba(194,181,155,0) 100%); /* @kind other */
}

/* tokens/typography.css */
:root{
--font-display:"Montserrat","Helvetica Neue",Arial,sans-serif;
--font-body:"Source Sans 3","Segoe UI",Helvetica,Arial,sans-serif;
--font-accent:"Cormorant Garamond",Georgia,"Times New Roman",serif;
--font-mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;

--fw-light:300; /* @kind font */
--fw-regular:400; /* @kind font */
--fw-medium:500; /* @kind font */
--fw-semibold:600; /* @kind font */
--fw-bold:700; /* @kind font */
--fw-extrabold:800; /* @kind font */

/* Type scale — 1.25 major third off a 16px body */
--fs-3xs:11px;--fs-2xs:12px;--fs-xs:13px;--fs-sm:15px;--fs-base:16px;--fs-md:18px;--fs-lg:21px;--fs-xl:26px;--fs-2xl:32px;--fs-3xl:40px;--fs-4xl:52px;--fs-5xl:66px;--fs-6xl:84px;

--lh-tight:1.06; /* @kind font */
--lh-snug:1.2; /* @kind font */
--lh-normal:1.45; /* @kind font */
--lh-relaxed:1.62; /* @kind font */

--ls-mega:-0.02em; /* @kind font */
--ls-tight:-0.01em; /* @kind font */
--ls-normal:0; /* @kind font */
--ls-wide:0.04em; /* @kind font */
--ls-wider:0.12em; /* @kind font */
--ls-eyebrow:0.18em; /* @kind font */

/* Named roles */
--type-display:var(--fw-bold) var(--fs-5xl)/var(--lh-tight) var(--font-display);
--type-h1:var(--fw-bold) var(--fs-4xl)/1.1 var(--font-display);
--type-h2:var(--fw-bold) var(--fs-3xl)/1.15 var(--font-display);
--type-h3:var(--fw-semibold) var(--fs-2xl)/1.2 var(--font-display);
--type-h4:var(--fw-semibold) var(--fs-xl)/1.25 var(--font-display);
--type-h5:var(--fw-semibold) var(--fs-md)/1.35 var(--font-display);
--type-body-lg:var(--fw-regular) var(--fs-md)/var(--lh-relaxed) var(--font-body);
--type-body:var(--fw-regular) var(--fs-base)/var(--lh-normal) var(--font-body);
--type-body-sm:var(--fw-regular) var(--fs-sm)/var(--lh-normal) var(--font-body);
--type-caption:var(--fw-regular) var(--fs-xs)/1.4 var(--font-body);
--type-eyebrow:var(--fw-semibold) var(--fs-2xs)/1.2 var(--font-display);
--type-quote:var(--fw-light) var(--fs-2xl)/1.3 var(--font-accent);
}

/* tokens/spacing.css */
:root{
--space-0:0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:32px;--space-8:40px;--space-9:48px;--space-10:64px;--space-11:80px;--space-12:104px;--space-13:136px;
/* Layout */
--container-max:1200px;--container-wide:1440px;--container-prose:68ch;
--gutter-mobile:20px;--gutter-desktop:40px;
--section-y:var(--space-12);--section-y-compact:var(--space-10);
--control-h-sm:34px;--control-h-md:44px;--control-h-lg:54px;
}

/* tokens/radius.css */
:root{
--radius-xs:4px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-2xl:28px;--radius-pill:999px;--radius-circle:50%;
/* Roles */
--radius-control:var(--radius-sm);
--radius-card:var(--radius-lg);
--radius-media:var(--radius-lg);
--radius-modal:var(--radius-xl);
--radius-chip:var(--radius-pill);
}

/* tokens/elevation.css */
:root{
/* Shadows are cool-tinted (ocean), never neutral black — they read as daylight on water */
--shadow-none:none;
--shadow-xs:0 1px 2px rgba(18,40,58,.06);
--shadow-sm:0 1px 3px rgba(18,40,58,.07),0 1px 2px rgba(18,40,58,.05);
--shadow-md:0 4px 14px rgba(18,40,58,.08),0 1px 3px rgba(18,40,58,.05);
--shadow-lg:0 12px 32px rgba(18,40,58,.11),0 2px 6px rgba(18,40,58,.05);
--shadow-xl:0 24px 64px rgba(18,40,58,.16),0 4px 12px rgba(18,40,58,.06);
--shadow-inset-hairline:inset 0 0 0 1px var(--border-subtle);
--shadow-focus:0 0 0 3px rgba(42,157,149,.35);
--blur-glass:saturate(140%) blur(14px); /* @kind other */
--surface-glass:rgba(255,255,255,.72); /* @kind other */
--surface-glass-dark:rgba(18,40,58,.55); /* @kind other */
}

/* tokens/motion.css */
:root{
--dur-instant:90ms; /* @kind other */
--dur-fast:160ms; /* @kind other */
--dur-base:240ms; /* @kind other */
--dur-slow:420ms; /* @kind other */
--dur-scenic:900ms; /* @kind other */
--ease-standard:cubic-bezier(.4,0,.2,1); /* @kind other */
--ease-out:cubic-bezier(.16,1,.3,1); /* @kind other */
--ease-in:cubic-bezier(.55,0,1,.45); /* @kind other */
--transition-control:background-color var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard),box-shadow var(--dur-fast) var(--ease-standard),transform var(--dur-fast) var(--ease-standard); /* @kind other */
--transition-media:transform var(--dur-scenic) var(--ease-out),opacity var(--dur-base) var(--ease-standard); /* @kind other */
}

/* tokens/base.css */
*,*::before,*::after{box-sizing:border-box}
body{margin:0;font:var(--type-body);color:var(--text-body);background:var(--surface-page);-webkit-font-smoothing:antialiased;text-wrap:pretty}
h1,h2,h3,h4,h5{margin:0;color:var(--text-heading);letter-spacing:var(--ls-tight);text-wrap:balance}
h1{font:var(--type-h1)}h2{font:var(--type-h2)}h3{font:var(--type-h3)}h4{font:var(--type-h4)}h5{font:var(--type-h5)}
p{margin:0 0 var(--space-4)}
a{color:var(--text-link);text-decoration:none;border-bottom:1px solid var(--sand-500);transition:var(--transition-control)}
a:hover{color:var(--text-link-hover);border-bottom-color:var(--ocean-600)}
:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
img{max-width:100%;display:block}
.m2t-eyebrow{font:var(--type-eyebrow);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--text-accent)}
.m2t-rule{height:2px;width:64px;background:var(--rule-accent);border:0;margin:0}


/* ---- shared page styles ---- */
html { scroll-behavior:smooth; }
html, body { margin:0; padding:0; background:var(--surface-page); color:var(--text-body); font-family:var(--font-body); -webkit-font-smoothing:antialiased; }
* { box-sizing:border-box; }
a { color:var(--text-link); text-decoration:none; }
a:hover { color:var(--text-link-hover); }
input, textarea, select, button { font-family:inherit; }
@keyframes m2t-rise { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:none; } }
@keyframes m2t-fade { from { opacity:0; } to { opacity:1; } }
@keyframes m2t-spin { to { transform:rotate(360deg); } }

/* ---- site header ---- */
.m2t-hd { position:fixed; top:0; left:0; right:0; z-index:70; border-bottom:1px solid transparent;
  background:linear-gradient(to bottom, rgba(18,40,58,.55), rgba(18,40,58,0)); transition:background 240ms, border-color 240ms; }
.m2t-hd.is-solid { background:var(--surface-glass); backdrop-filter:var(--blur-glass); border-bottom-color:var(--border-subtle); }
.m2t-hd__bar { max-width:var(--container-max); margin:0 auto; padding:12px clamp(16px,4vw,40px); display:flex; align-items:center; justify-content:space-between; gap:12px; }
.m2t-hd__logo { position:relative; flex:none; height:clamp(26px,7vw,38px); width:clamp(108px,30vw,158px); display:block; }
.m2t-hd__logo img { position:absolute; left:0; top:0; height:100%; width:100%; object-fit:contain; object-position:left center; transition:opacity 240ms; }
.m2t-hd__logo .lw { opacity:1; } .m2t-hd__logo .lb { opacity:0; }
.m2t-hd.is-solid .m2t-hd__logo .lw { opacity:0; } .m2t-hd.is-solid .m2t-hd__logo .lb { opacity:1; }
.m2t-hd__nav { display:flex; align-items:center; gap:clamp(10px,2vw,26px); min-width:0; }
.m2t-hd__links { display:flex; align-items:center; gap:clamp(10px,2vw,26px); }
.m2t-hd__link { font:var(--type-body-sm); letter-spacing:var(--ls-wide); text-transform:uppercase; white-space:nowrap;
  color:var(--text-on-dark); background:none; border:0; padding:0; cursor:pointer; }
.m2t-hd__link:hover { color:var(--text-on-dark); }
.m2t-hd.is-solid .m2t-hd__link { color:var(--text-muted); }
.m2t-hd__link--menu { display:inline-flex; align-items:center; gap:5px; }
.m2t-hd__burger { display:none; font:var(--type-body-sm); letter-spacing:var(--ls-wide); text-transform:uppercase;
  color:var(--text-on-dark); background:none; border:0; padding:8px 10px; cursor:pointer; }
.m2t-hd.is-solid .m2t-hd__burger { color:var(--text-muted); }
.m2t-hd__cta { display:inline-flex; align-items:center; height:36px; padding:0 16px; border-radius:var(--radius-control,6px);
  font:var(--type-body-sm); font-weight:var(--fw-semibold); letter-spacing:var(--ls-wide); text-transform:uppercase; white-space:nowrap;
  background:var(--surface-glass); backdrop-filter:var(--blur-glass); color:var(--ocean-900); border:1px solid rgba(255,255,255,.85);
  transition:all 160ms cubic-bezier(.4,0,.2,1); }
.m2t-hd__cta:hover { color:var(--ocean-900); }
.m2t-hd.is-solid .m2t-hd__cta { background:var(--brand-primary); backdrop-filter:none; color:var(--white,#fff); border-color:var(--brand-primary); }
.m2t-hd.is-solid .m2t-hd__cta:hover { background:var(--brand-primary-hover); border-color:var(--brand-primary-hover); color:var(--white,#fff); }
.m2t-menu { display:none; background:var(--surface-card); border-top:1px solid var(--border-subtle); border-bottom:1px solid var(--border-subtle);
  box-shadow:var(--shadow-lg); animation:m2t-fade 160ms ease both; max-height:calc(100vh - 62px); overflow-y:auto; overscroll-behavior:contain; }
.m2t-menu.is-open { display:block; }
.m2t-menu__inner { max-width:var(--container-max); margin:0 auto; padding:clamp(20px,3vw,32px) clamp(16px,4vw,40px);
  display:grid; grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr)); gap:clamp(20px,3vw,40px); }
.m2t-menu__eyebrow { font:var(--type-eyebrow); letter-spacing:var(--ls-eyebrow); text-transform:uppercase; color:var(--text-accent); }
.m2t-menu__grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr)); gap:2px 24px; margin-top:var(--space-4); }
.m2t-menu__col { display:flex; flex-direction:column; margin-top:var(--space-4); }
.m2t-menu a { color:inherit; }
.m2t-menu__item { display:flex; flex-direction:column; gap:1px; padding:7px 0; }
.m2t-menu__name { font:var(--type-body-sm); font-weight:var(--fw-semibold); color:var(--text-heading); }
.m2t-menu__note { font:var(--type-caption); color:var(--text-muted); }
.m2t-menu__link { padding:7px 0; font:var(--type-body-sm); font-weight:var(--fw-semibold); color:var(--text-heading); }
@media (max-width:900px) { .m2t-hd__links { display:none; } .m2t-hd__burger { display:inline-flex; } }
.m2t-btn:hover { filter:brightness(.94); }
