.content-page{background:linear-gradient(180deg,#f7f4ec 0%,#fffdf8 42%,#f5f8f5 100%);color:#102f4c}
.page-shell{width:min(1180px,calc(100% - 2rem));margin:0 auto}
.page-hero{padding:clamp(4.6rem,8vw,7rem) 0 clamp(2rem,4vw,3rem)}
.page-kicker{margin:0 0 .7rem;color:#667f92;font-size:.82rem;font-weight:950;letter-spacing:.18em;text-transform:uppercase}
.page-hero h1{margin:0;color:#102f4c;font-size:clamp(2.6rem,7vw,5.2rem);letter-spacing:-.07em;line-height:.95}
.page-hero p{max-width:860px;margin:1.05rem 0 0;color:#5d7182;font-size:clamp(1rem,1.6vw,1.14rem);line-height:1.95}
.page-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.25rem}
.page-actions a{min-height:46px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#102f4c;color:#fff;text-decoration:none;font-weight:950;padding:0 1.1rem}
.page-actions a.secondary{background:#eef5ef;color:#315e40}
.page-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:0 auto 1.2rem}
.page-card{min-height:220px;border:1px solid rgba(16,47,76,.1);border-radius:28px;background:rgba(255,255,255,.86);box-shadow:0 18px 54px rgba(16,47,76,.07);padding:clamp(1.1rem,2vw,1.5rem)}
.page-card span,.page-row span,.page-block span,.page-highlight span,.page-summary span,.route-item small{display:inline-flex;margin-bottom:.75rem;color:#6f8698;font-size:.74rem;font-weight:950;letter-spacing:.14em;text-transform:uppercase}
.page-card h2,.page-row strong,.page-block h2,.page-highlight h2,.page-summary h2,.route-item h2{margin:0 0 .7rem;color:#102f4c;letter-spacing:-.03em}
.page-card h2,.page-block h2,.page-summary h2{font-size:1.28rem}
.page-card p,.page-card li,.page-row p,.page-block p,.page-block li,.page-highlight p,.page-summary p,.route-item p{color:#627588;line-height:1.88}
.page-card ul,.page-block ul{margin:.6rem 0 0;padding-left:1.1rem}
.page-card--wide{grid-column:span 2}
.page-flow{display:grid;gap:1rem;margin:1rem auto clamp(3rem,6vw,5rem)}
.page-row{display:grid;grid-template-columns:220px minmax(0,1fr);gap:1rem;align-items:start;border:1px solid rgba(16,47,76,.1);border-radius:28px;background:#fff;padding:1.05rem 1.15rem;box-shadow:0 16px 42px rgba(16,47,76,.05)}
.page-row strong{font-size:1.12rem}
.page-row p{margin:.18rem 0 0}
.page-row ul{margin:.65rem 0 0;padding-left:1.1rem}
.page-block{border:1px solid rgba(16,47,76,.1);border-radius:30px;background:#fff;padding:clamp(1.1rem,2vw,1.6rem);box-shadow:0 18px 54px rgba(16,47,76,.05)}
.page-block + .page-block{margin-top:1rem}
.page-columns{display:grid;grid-template-columns:1.1fr .9fr;gap:1rem;margin-bottom:1rem}
.page-highlight{border-radius:30px;background:linear-gradient(135deg,#f4fafb 0%,#fffdf9 100%);border:1px solid rgba(16,47,76,.08);padding:clamp(1.2rem,2vw,1.5rem);box-shadow:0 18px 54px rgba(16,47,76,.05)}
.page-highlight h2{font-size:1.5rem}
.page-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem;margin-top:1rem}
.page-metric{border-radius:22px;padding:1rem;background:#f7fafc;border:1px solid rgba(16,47,76,.08)}
.page-metric strong{display:block;color:#102f4c;font-size:1.45rem;letter-spacing:-.04em}
.page-metric span{display:block;margin:.2rem 0 0;color:#698094;font-size:.88rem;font-weight:800;letter-spacing:.04em;text-transform:none}
.page-summary{border:1px solid rgba(16,47,76,.1);border-radius:30px;background:rgba(255,255,255,.9);box-shadow:0 18px 54px rgba(16,47,76,.05);padding:clamp(1.1rem,2vw,1.5rem);margin-bottom:clamp(3rem,6vw,5rem)}
.page-summary ul{margin:.7rem 0 0;padding-left:1.1rem}
.route-list{display:grid;gap:1rem;margin-bottom:4rem}
.route-item{border:1px solid rgba(16,47,76,.1);border-radius:30px;background:#fff;padding:1.1rem;box-shadow:0 18px 54px rgba(16,47,76,.06)}
.route-points{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:.8rem}
.route-points a{border-radius:999px;background:#f1f7f2;color:#315e40;text-decoration:none;font-weight:900;padding:.45rem .72rem}
@media(max-width:980px){.page-columns,.page-metrics{grid-template-columns:1fr 1fr}.page-grid{grid-template-columns:1fr 1fr}}
@media(max-width:900px){.page-grid{grid-template-columns:1fr}.page-card--wide{grid-column:auto}.page-row{grid-template-columns:1fr}.page-hero{padding-top:3rem}.page-columns,.page-metrics{grid-template-columns:1fr}}



.about-page{background:linear-gradient(180deg,#fffaf2 0%,#f7f1e8 42%,#eef7f8 100%)}
.about-hero{padding:clamp(4.8rem,8vw,7rem) 0 clamp(1.8rem,4vw,3.2rem)}
.about-hero__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.42fr);gap:clamp(1.2rem,4vw,3rem);align-items:end}
.about-hero h1{margin:0;color:#102f4c;font-size:clamp(3.2rem,8vw,6rem);line-height:.95;letter-spacing:-.075em}
.about-hero__copy p:not(.page-kicker){max-width:790px;margin:1.1rem 0 0;color:#5d7182;font-size:clamp(1rem,1.55vw,1.16rem);line-height:1.95}
.about-hero__note{border:1px solid rgba(16,47,76,.1);border-radius:28px;background:rgba(255,255,255,.82);box-shadow:0 24px 70px rgba(16,47,76,.08);padding:1.2rem}
.about-hero__note span,.about-usr__heading span{display:block;margin-bottom:.6rem;color:#8f5c4f;font-size:.76rem;font-weight:950;letter-spacing:.16em;text-transform:uppercase}
.about-hero__note strong{display:block;color:#102f4c;font-size:1.15rem;line-height:1.55}
.about-hero__note p{margin:.65rem 0 0;color:#607588;line-height:1.8}
.about-usr{display:grid;grid-template-columns:minmax(240px,.34fr) minmax(0,1fr);gap:clamp(1rem,4vw,3rem);border:1px solid rgba(16,47,76,.1);border-radius:34px;background:rgba(255,255,255,.9);box-shadow:0 24px 70px rgba(16,47,76,.08);padding:clamp(1.2rem,3vw,2rem);margin-bottom:1.2rem}
.about-usr__heading h2{margin:0;color:#b02521;font-size:clamp(1.55rem,3vw,2.2rem);letter-spacing:-.045em;line-height:1.25}
.about-usr__body p{margin:0;color:#40566a;font-size:clamp(1rem,1.4vw,1.08rem);line-height:2.05;text-align:justify}
.about-usr__body p+p{margin-top:1rem}
.about-entry-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-bottom:1.2rem}
.about-entry{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);gap:1rem;min-height:190px;padding:1.25rem;border:1px solid rgba(16,47,76,.1);border-radius:30px;background:rgba(255,255,255,.86);box-shadow:0 18px 54px rgba(16,47,76,.07);text-decoration:none;overflow:hidden}
.about-entry::after{content:"";position:absolute;inset:auto -40px -70px auto;width:150px;height:150px;border-radius:50%;background:rgba(111,183,222,.13);transition:transform .35s ease,opacity .35s ease}
.about-entry:hover{transform:translateY(-3px);box-shadow:0 28px 78px rgba(16,47,76,.11)}
.about-entry:hover::after{transform:scale(1.16);opacity:.8}
.about-entry span{display:grid;place-items:center;width:42px;height:42px;border-radius:16px;background:#eef7f8;color:#102f4c;font-weight:950}
.about-entry strong{display:block;color:#102f4c;font-size:1.28rem;letter-spacing:-.035em}
.about-entry p{margin:.55rem 0 0;color:#607588;line-height:1.78}
.about-entry em{position:absolute;left:1.25rem;bottom:1.1rem;color:#315e40;font-style:normal;font-weight:900;font-size:.86rem}
.about-work{display:grid;grid-template-columns:minmax(0,.42fr) minmax(0,1fr);gap:clamp(1rem,4vw,3rem);align-items:start;border:1px solid rgba(16,47,76,.1);border-radius:34px;background:rgba(255,255,255,.9);box-shadow:0 24px 70px rgba(16,47,76,.08);padding:clamp(1.2rem,3vw,2rem);margin-bottom:clamp(3rem,6vw,5rem)}
.about-work h2{margin:0;color:#102f4c;font-size:clamp(1.8rem,3.5vw,2.7rem);letter-spacing:-.06em;line-height:1.1}
.about-work>div>p:not(.page-kicker){color:#607588;line-height:1.9}
.about-work__list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}
.about-work__list article{border:1px solid rgba(16,47,76,.08);border-radius:22px;background:#fff;padding:1rem}
.about-work__list span{display:block;margin-bottom:.5rem;color:#102f4c;font-weight:950}
.about-work__list p{margin:0;color:#657789;line-height:1.78}
.page-reveal{opacity:0;transform:translate3d(0,22px,0);transition:opacity .72s cubic-bezier(.2,.8,.2,1),transform .72s cubic-bezier(.2,.8,.2,1)}
.page-reveal.is-visible{opacity:1;transform:none}
.about-entry.page-reveal:nth-child(2){transition-delay:.08s}
.about-entry.page-reveal:nth-child(3){transition-delay:.16s}
@media(max-width:980px){.about-hero__grid,.about-usr,.about-work{grid-template-columns:1fr}.about-entry-grid,.about-work__list{grid-template-columns:1fr 1fr}}
@media(max-width:680px){.about-hero{padding-top:3.4rem}.about-entry-grid,.about-work__list{grid-template-columns:1fr}.about-usr,.about-work,.about-entry,.about-hero__note{border-radius:24px}.about-usr__body p{text-align:left}}
@media(prefers-reduced-motion:reduce){.page-reveal{opacity:1!important;transform:none!important;transition:none!important}.about-entry:hover{transform:none}}



.hub-page{background:linear-gradient(180deg,#fffaf2 0%,#f7f1e8 48%,#eef7f8 100%)}
.hub-hero{position:relative;padding:clamp(4.8rem,8vw,7rem) 0 clamp(1.8rem,4vw,3.2rem);overflow:hidden}
.hub-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 82% 22%,rgba(111,183,222,.18),transparent 30%),radial-gradient(circle at 12% 70%,rgba(184,74,59,.08),transparent 28%);pointer-events:none}
.hub-hero__grid{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.38fr);gap:clamp(1.2rem,4vw,3rem);align-items:end}
.hub-hero h1{margin:0;color:#102f4c;font-size:clamp(3.2rem,8vw,6rem);line-height:.95;letter-spacing:-.075em}
.hub-hero p:not(.page-kicker){max-width:820px;margin:1.1rem 0 0;color:#5d7182;font-size:clamp(1rem,1.55vw,1.16rem);line-height:1.95}
.hub-hero__note{border:1px solid rgba(16,47,76,.1);border-radius:28px;background:rgba(255,255,255,.84);box-shadow:0 24px 70px rgba(16,47,76,.08);padding:1.2rem}
.hub-hero__note span,.hub-note span,.about-usr__heading span{display:block;margin-bottom:.6rem;color:#8f5c4f;font-size:.76rem;font-weight:950;letter-spacing:.16em;text-transform:uppercase}
.hub-hero__note strong{display:block;color:#102f4c;font-size:1.15rem;line-height:1.55}
.hub-hero__note p{margin:.65rem 0 0;color:#607588;line-height:1.8}
.hub-entry-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-bottom:clamp(3rem,6vw,5rem)}
.hub-entry{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);gap:1rem;min-height:210px;padding:1.3rem;border:1px solid rgba(16,47,76,.1);border-radius:30px;background:rgba(255,255,255,.86);box-shadow:0 18px 54px rgba(16,47,76,.07);text-decoration:none;overflow:hidden;transition:transform .28s cubic-bezier(.2,.8,.2,1),box-shadow .28s cubic-bezier(.2,.8,.2,1),border-color .28s ease}
.hub-entry::after{content:"";position:absolute;right:-44px;bottom:-54px;width:150px;height:150px;border-radius:50%;background:rgba(111,183,222,.12);transition:transform .35s ease,opacity .35s ease}
.hub-entry:hover{transform:translateY(-4px);box-shadow:0 24px 70px rgba(16,47,76,.11);border-color:rgba(184,74,59,.18)}
.hub-entry:hover::after{transform:scale(1.16);opacity:.9}
.hub-entry>span{position:relative;z-index:1;color:#7b91a4;font-weight:950;letter-spacing:.08em}
.hub-entry strong{display:block;position:relative;z-index:1;color:#102f4c;font-size:1.45rem;letter-spacing:-.035em}
.hub-entry p{position:relative;z-index:1;color:#627588;line-height:1.78;margin:.6rem 0 0}
.hub-entry em{position:absolute;left:1.3rem;bottom:1.2rem;color:#8f5c4f;font-size:.86rem;font-style:normal;font-weight:950}
.hub-note{border:1px solid rgba(16,47,76,.1);border-radius:30px;background:rgba(255,255,255,.9);box-shadow:0 18px 54px rgba(16,47,76,.06);padding:clamp(1.2rem,2.4vw,1.6rem);margin-bottom:clamp(3rem,6vw,5rem)}
.hub-note h2{margin:0 0 .7rem;color:#102f4c;font-size:clamp(1.6rem,3vw,2.2rem);letter-spacing:-.05em}
.hub-note p{margin:0;color:#627588;line-height:1.9}
.page-reveal{opacity:0;transform:translate3d(0,24px,0);filter:blur(8px);transition:opacity .82s cubic-bezier(.2,.8,.2,1),transform .82s cubic-bezier(.2,.8,.2,1),filter .82s cubic-bezier(.2,.8,.2,1);transition-delay:var(--reveal-delay,0ms)}
.page-reveal.is-visible{opacity:1;transform:none;filter:blur(0)}
.hub-entry.page-reveal:nth-child(2),.about-entry.page-reveal:nth-child(2){--reveal-delay:90ms}
.hub-entry.page-reveal:nth-child(3),.about-entry.page-reveal:nth-child(3){--reveal-delay:180ms}
@media(max-width:980px){.hub-hero__grid,.hub-entry-grid{grid-template-columns:1fr}.hub-entry{min-height:170px}}
@media(max-width:680px){.hub-hero{padding-top:3.4rem}.hub-entry,.hub-hero__note,.hub-note{border-radius:24px}.page-reveal{filter:none}}
@media(prefers-reduced-motion:reduce){.page-reveal{opacity:1!important;transform:none!important;filter:none!important;transition:none!important}.hub-entry:hover{transform:none}}
:where(a,button,input,summary,[tabindex]){outline-offset:4px}
:where(a,button,summary,.hero-button,.page-actions a,.map-pill,.search-result,.drawer-link,.drawer-sublist a){-webkit-tap-highlight-color:transparent;touch-action:manipulation}
:where(img,svg,video,canvas){max-width:100%}
:where(img){height:auto;content-visibility:auto}
:where(.site-header,.mobile-drawer__panel,.site-search__panel){transform:translateZ(0)}
:where(.main-nav__link,.icon-button,.map-pill,.hero-button,.page-actions a,.search-result,.drawer-sublist a){will-change:transform}
:where(.main-nav__link,.icon-button,.map-pill,.hero-button,.page-actions a,.search-result,.drawer-sublist a):active{transform:translateY(1px) scale(.99)}
@supports (scrollbar-gutter:stable){html{scrollbar-gutter:stable}}
@media (prefers-reduced-motion:no-preference){:where(.site-header,.site-footer,.page-card,.field-photo,.weather-slot,.transport-stop){backface-visibility:hidden}}
:where(.page-actions a,.route-points a){border-radius:8px!important}

/* Field photo gallery */
.field-photo-grid{display:grid;grid-template-columns:1.15fr .85fr;grid-auto-rows:minmax(260px,34vw);gap:1rem;margin-bottom:clamp(2rem,5vw,4rem)}
.field-photo{position:relative;min-width:0;margin:0;overflow:hidden;border-radius:24px;background:#dfe8e7;box-shadow:0 18px 54px rgba(16,47,76,.08)}
.field-photo--wide{grid-row:span 2}
.field-photo img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .65s cubic-bezier(.22,.75,.18,1),filter .35s ease}
.field-photo figcaption{position:absolute;left:0;right:0;bottom:0;display:grid;gap:.18rem;padding:3.5rem 1.2rem 1.15rem;background:linear-gradient(180deg,transparent,rgba(7,24,39,.82));color:#fff}
.field-photo figcaption span{font-size:.68rem;font-weight:850;letter-spacing:.13em;color:#c9e0e3}.field-photo figcaption strong{font-family:var(--font-serif);font-size:clamp(1.25rem,2.5vw,1.8rem)}
.field-photo:hover img{transform:scale(1.045);filter:saturate(1.05)}
@media(max-width:780px){.field-photo-grid{grid-template-columns:1fr;grid-auto-rows:300px}.field-photo--wide{grid-row:auto}.field-photo{border-radius:18px}}
