:root {
    --paper:#f8f5ed;
    --ink:#302d28;
    --muted:#68685e;
    --aqua:#bfded9;
    --teal:#244e4c;
    --line:#d9d5c9;
    --rose:#b56c55;
    --pale:#ece7dc
}

* {
    box-sizing:border-box
}

html {
    scroll-behavior:smooth;
    scroll-padding-top:24px
}

body {
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font:14px/1.8 Arial,Helvetica,sans-serif
}

h1,h2,h3,h4,p,figure {
    margin:0
}

img {
    display:block;
    max-width:100%;
    height:auto
}

a {
    color:inherit;
    text-decoration:none
}

button {
    font:inherit;
    color:inherit
}

button,a,summary {
    -webkit-tap-highlight-color:transparent
}

a:focus-visible,button:focus-visible,summary:focus-visible {
    outline:3px solid var(--rose);
    outline-offset:5px
}

h1,h2,h3 {
    font-family:Georgia,'Times New Roman',serif;
    font-weight:400;
    letter-spacing:-.025em;
    line-height:1.12;
    overflow-wrap:break-word
}

h4 {
    font:400 13px/1.5 Arial,sans-serif
}

p {
    color:var(--muted)
}

p+p {
    margin-top:18px
}

em {
    font-weight:400
}

address {
    font-style:normal
}

.wrap {
    width:min(1200px,calc(100% - 112px));
    margin-inline:auto
}

.eyebrow {
    font-size:9px;
    line-height:1.7;
    font-weight:400;
    letter-spacing:.17em;
    text-transform:uppercase;
    color:var(--teal)
}

.topline {
    border-bottom:1px solid var(--line);
    font-size:8px;
    letter-spacing:.14em
}

.topline>.wrap {
    display:flex;
    justify-content:space-between;
    padding-block:9px
}

.topline a {
    letter-spacing:.16em
}

.header-inner {
    min-height:116px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:30px;
    position:relative
}

.brand {
    flex:0 0 auto
}

.brand img {
    width:160px;
    height:auto
}

.header-inner nav {
    display:flex;
    align-items:center;
    gap:34px;
    font-size:11px
}

.header-inner nav a {
    padding:12px 0;
    border-bottom:1px solid transparent
}

.header-inner nav a:hover {
    border-color:var(--teal)
}

.menu-toggle {
    display:none
}

.button {
    display:inline-flex;
    gap:25px;
    align-items:center;
    justify-content:space-between;
    background:var(--teal);
    color:#fffdf5;
    border:1px solid var(--teal);
    padding:15px 23px;
    min-height:48px;
    font-size:10px;
    line-height:1.5;
    letter-spacing:.025em;
    transition:background .2s
}

.button>span {
    font-size:19px;
    line-height:1;
    font-weight:400
}

.button:hover {
    background:#163b39
}

.button.small {
    font-size:9px;
    padding:11px 18px;
    min-height:42px
}

.button.dark {
    background:var(--ink);
    border-color:var(--ink)
}

.button.dark:hover {
    background:var(--teal)
}

.text-link {
    display:inline-flex;
    gap:24px;
    align-items:center;
    border-bottom:1px solid currentColor;
    font-size:10px;
    line-height:1.7;
    padding:8px 0
}

.text-link>span {
    font-size:18px
}

.text-link:hover {
    color:var(--rose)
}

.skip-link {
    position:fixed;
    top:-100px;
    left:20px;
    padding:13px;
    background:var(--teal);
    color:white;
    z-index:100
}

.skip-link:focus {
    top:15px
}

.hero {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:55px;
    align-items:center;
    padding-block:50px 83px
}

.hero-copy {
    padding-block:15px
}

.tiny-flower {
    color:var(--rose);
    font-size:19px;
    vertical-align:middle;
    margin-right:10px
}

.hero h1 {
    font-size:clamp(58px,6.3vw,84px);
    line-height:1.08;
    margin:23px 0 27px;
    letter-spacing:-.035em
}

.hero h1 em {
    color:var(--teal)
}

.hero-description {
    font-size:13px;
    line-height:1.9;
    max-width:360px
}

.hero-actions {
    display:flex;
    gap:25px;
    align-items:center;
    margin-top:29px
}

.hero-location {
    font-size:10px;
    margin-top:34px;
    letter-spacing:.02em
}

.hero-location>span {
    font-size:15px;
    margin-right:8px
}

.hero-composition {
    position:relative;
    padding:0 35px 50px 10px;
    min-width:0
}

.aqua-backdrop {
    position:absolute;
    top:29px;
    bottom:0;
    left:60px;
    right:0;
    background:var(--aqua)
}

.hero-photo {
    position:relative;
    margin-right:20px
}

.hero-photo img {
    width:100%;
    height:414px;
    object-fit:cover;
    object-position:50% center
}

.hero-inset {
    position:relative;
    margin:-52px 0 0 0;
    display:flex;
    gap:23px;
    align-items:flex-end;
    left:-12px;
    z-index:1
}

.hero-inset figure {
    border:7px solid var(--paper);
    width:178px;
    flex:0 0 auto;
    box-shadow:none
}

.hero-inset img {
    height:117px;
    width:100%;
    object-fit:cover
}

.hero-inset>span {
    font-size:8px;
    letter-spacing:.13em;
    line-height:1.7;
    margin-bottom:8px;
    color:var(--teal)
}

.photo-note {
    position:relative;
    font-size:8px;
    margin:21px 0 -24px 65px;
    color:var(--teal);
    line-height:1.7;
    max-width:230px
}

.hero-number {
    position:absolute;
    bottom:81px;
    right:-9px;
    font:23px/1 Georgia,serif;
    color:var(--teal);
    transform:none
}

.hero-number em {
    font-size:30px
}

.service-ribbon {
    background:var(--aqua);
    border-top:1px solid #9dbeb8;
    border-bottom:1px solid #9dbeb8;
    padding-block:19px
}

.service-ribbon>.wrap {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:22px;
    font-size:9px;
    letter-spacing:.13em;
    color:var(--teal)
}

.service-ribbon i {
    font-style:normal;
    font-size:17px
}

.section-label {
    display:flex;
    align-items:center;
    gap:12px;
    font-size:8px;
    letter-spacing:.16em;
    text-transform:uppercase;
    color:var(--teal)
}

.section-label>span {
    font-size:9px;
    font-family:Georgia,serif;
    font-style:italic;
    border-right:1px solid var(--line);
    padding-right:13px
}

.service-section {
    padding-block:76px 84px
}

.section-heading {
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:70px;
    margin:27px 0 34px
}

.section-heading h2 {
    font-size:56px;
    max-width:650px
}

.section-heading>p,.section-heading>div {
    max-width:315px;
    font-size:12px;
    line-height:1.9
}

.section-heading h2 em {
    color:var(--teal)
}

.menu-disclaimer {
    font-size:11px;
    line-height:1.8;
    color:#69685f
}

.menu-filter {
    display:flex;
    gap:6px;
    flex-wrap:wrap;
    border-bottom:1px solid var(--line);
    margin-top:31px
}

.menu-filter button {
    background:transparent;
    border:0;
    border-bottom:2px solid transparent;
    min-height:45px;
    padding:10px 19px;
    cursor:pointer;
    font-size:10px
}

.menu-filter button:first-child {
    padding-left:0;
    padding-right:25px
}

.menu-filter button.active {
    border-color:var(--teal);
    color:var(--teal)
}

.menu-filter button:hover {
    color:var(--teal);
    background:#bfded920
}

.menu-count {
    font-size:10px;
    letter-spacing:.04em;
    margin-top:15px
}

.menu-grid {
    display:grid;
    grid-template-columns:1fr 1fr 1fr;
    gap:39px;
    margin-top:29px;
    align-items:start
}

.menu-group-heading {
    display:flex;
    gap:12px;
    align-items:center;
    margin-bottom:20px
}

.menu-group-heading>span {
    font:italic 15px Georgia,serif;
    color:var(--rose)
}

.menu-group-heading h3 {
    font-size:25px;
    letter-spacing:-.03em
}

.menu-item {
    display:grid;
    grid-template-columns:1fr auto;
    align-items:baseline;
    gap:14px;
    border-bottom:1px solid var(--line);
    padding:12px 0;
    min-height:47px
}

.menu-item h4 {
    font-size:12px;
    line-height:1.65
}

.menu-item>span {
    font-size:11px;
    font-family:Georgia,serif;
    color:var(--teal);
    white-space:nowrap
}

.menu-grid.filtered {
    grid-template-columns:minmax(280px,650px)
}

.menu-grid.filtered .menu-item {
    padding-block:15px
}

.menu-grid.filtered .menu-item h4 {
    font-size:13px
}

.menu-bottom {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:35px;
    margin-top:29px;
    padding-top:23px;
    border-top:1px solid var(--line)
}

.menu-bottom p {
    font-size:10px;
    line-height:1.9
}

.shop-story {
    background:var(--teal);
    padding-block:80px;
    color:var(--paper)
}

.shop-story-grid {
    display:grid;
    grid-template-columns:1.25fr 1fr;
    gap:80px;
    align-items:center
}

.shop-photo {
    position:relative;
    padding-bottom:30px
}

.shop-photo figure img {
    width:100%;
    height:350px;
    object-fit:cover
}

.shop-photo figcaption {
    font-size:7px;
    color:#d1ded4;
    letter-spacing:.12em;
    margin-top:12px
}

.shop-photo figure>a {
    display:block;
    position:relative
}

.photo-slip {
    position:absolute;
    bottom:6px;
    right:-17px;
    padding:21px 29px;
    background:var(--paper);
    font:25px/1.05 Georgia,serif;
    color:var(--teal);
    transform:none
}

.photo-slip em {
    font-size:22px
}

.shop-copy .section-label {
    color:#d3e4da
}

.shop-copy .section-label>span {
    border-color:#75908a
}

.shop-copy h2 {
    font-size:56px;
    margin:27px 0 24px
}

.shop-copy h2 em {
    color:#c2dcd3
}

.shop-copy>p:not(.section-label) {
    font-size:12px;
    line-height:1.95;
    color:#d3dfd5
}

.light-link {
    color:var(--paper);
    margin-top:20px
}

.light-link:hover {
    color:#dce6cc
}

.zoom-hint {
    position:absolute;
    right:13px;
    bottom:13px;
    padding:5px 10px;
    background:var(--paper);
    color:var(--ink);
    font:8px/1.6 Arial,sans-serif;
    letter-spacing:.03em
}

.journal {
    padding-block:80px 83px
}

.story-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:31px
}

.story-image {
    overflow:hidden;
    background:var(--pale)
}

.story-image img {
    width:100%;
    height:228px;
    object-fit:cover;
    transition:none
}

.story-card>.eyebrow {
    font-size:7px;
    margin-top:21px;
    letter-spacing:.12em
}

.story-card h3 {
    font-size:31px;
    margin:12px 0 20px;
    line-height:1.13
}

.story-link {
    display:flex;
    justify-content:space-between;
    gap:15px;
    font-size:9px;
    border-top:1px solid var(--line);
    padding-top:13px
}

.story-link>span {
    font-size:17px;
    line-height:1
}

.story-card:hover h3 {
    color:var(--teal)
}

.visit {
    border-top:1px solid var(--line);
    padding-block:52px 80px
}

.visit-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:90px;
    align-items:center;
    margin-top:33px
}

.visit h2 {
    font-size:58px
}

.visit address {
    font-family:Georgia,serif;
    font-size:22px;
    line-height:1.5;
    margin:25px 0 19px
}

.contact-row {
    display:flex;
    gap:24px;
    font-size:11px;
    margin-bottom:25px;
    flex-wrap:wrap
}

.contact-row a {
    border-bottom:1px solid var(--line)
}

.visit-note {
    max-width:360px;
    font-size:9px;
    line-height:1.9;
    margin-top:23px
}

.visit-photo {
    position:relative;
    padding:20px 20px 0 0
}

.visit-photo:before {
    content:'';
    background:var(--pale);
    position:absolute;
    inset:0 0 50px 40px;
    z-index:-1
}

.visit-photo figure {
    position:relative
}

.visit-photo img {
    width:100%;
    height:290px;
    object-fit:cover
}

.visit-photo figcaption {
    font-size:7px;
    letter-spacing:.15em;
    margin-top:13px
}

.visit-phone {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    margin-top:27px;
    padding:19px 0;
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line)
}

.visit-phone>span {
    font-size:10px
}

.visit-phone>strong {
    font-weight:400;
    font:21px Georgia,serif;
    color:var(--teal)
}

.faq-section {
    border-top:1px solid var(--line);
    display:grid;
    grid-template-columns:1fr 1.25fr;
    gap:80px;
    padding-block:50px 80px
}

.faq-section h2 {
    font-size:54px;
    margin-top:28px
}

.faq-list details {
    border-top:1px solid var(--line);
    padding:20px 0
}

.faq-list details:last-child {
    border-bottom:1px solid var(--line)
}

.faq-list summary {
    cursor:pointer;
    font-size:12px;
    font-weight:400;
    line-height:1.7;
    padding-right:20px
}

.faq-list details p {
    font-size:11px;
    line-height:1.95;
    margin-top:15px
}

.closing {
    background:var(--aqua);
    padding-block:51px
}

.closing>.wrap>div {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:40px;
    margin-top:16px
}

.closing h2 {
    font-size:58px;
    color:var(--teal)
}

.closing>.wrap>.eyebrow {
    font-size:8px
}

.booking-note {
    font-size:9px;
    max-width:480px;
    margin-top:22px;
    color:#435e57
}

footer {
    padding-top:54px
}

.footer-top {
    display:grid;
    grid-template-columns:1.2fr 1fr 1fr 1.2fr;
    gap:45px
}

.footer-signature>span {
    font:italic 49px/.9 Georgia,serif;
    letter-spacing:-.06em;
    color:var(--teal)
}

.footer-signature p {
    font-size:10px;
    line-height:1.8;
    margin-top:20px
}

.footer-top h2 {
    font:400 9px/1.5 Arial,sans-serif;
    letter-spacing:.06em;
    margin-bottom:20px
}

.footer-top a,.footer-top>div>p {
    display:block;
    font-size:9px;
    line-height:1.9;
    color:var(--muted);
    margin-bottom:8px
}

.footer-top a:hover {
    text-decoration:underline
}

.archive-directory {
    font-size:9px;
    margin-top:13px;
    color:var(--teal)
}

.archive-directory summary {
    cursor:pointer
}

.archive-directory>div {
    padding-top:13px
}

.footer-bottom {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:30px;
    border-top:1px solid var(--line);
    padding-block:19px;
    margin-top:39px;
    font-size:8px
}

.footer-bottom a {
    white-space:nowrap
}

.photo-dialog {
    border:0;
    padding:20px;
    background:var(--paper);
    max-width:min(900px,90vw);
    max-height:90vh;
    color:var(--ink)
}

.photo-dialog::backdrop {
    background:#153733d9
}

.photo-dialog>img {
    max-height:70vh;
    width:auto;
    height:auto;
    margin:15px auto 0
}

.photo-dialog>p {
    font-size:11px;
    margin-top:15px
}

.dialog-close {
    display:block;
    margin-left:auto;
    border:1px solid var(--line);
    padding:7px 12px;
    min-height:36px;
    background:transparent;
    font-size:10px;
    cursor:pointer
}

.page-intro {
    padding-top:24px;
    padding-bottom:47px
}

.breadcrumb {
    display:flex;
    gap:13px;
    flex-wrap:wrap;
    font-size:8px;
    color:var(--muted);
    margin-bottom:37px
}

.breadcrumb a:hover {
    text-decoration:underline
}

.page-intro>.eyebrow {
    font-size:8px
}

.page-intro h1 {
    font-size:clamp(58px,6.4vw,85px);
    margin-top:22px;
    max-width:1050px
}

.page-intro h1 em {
    color:var(--teal)
}

.intro-text {
    font-size:13px;
    line-height:1.95;
    max-width:660px;
    margin-top:25px
}

.photo-article {
    display:grid;
    grid-template-columns:1.1fr 1fr;
    gap:70px;
    padding-bottom:75px;
    align-items:start
}

.article-image figure {
    position:relative
}

.article-image img {
    width:100%;
    height:auto
}

.article-image figcaption {
    font-size:7px;
    line-height:1.8;
    letter-spacing:.1em;
    margin-top:13px
}

.article-image figure>a {
    display:block;
    position:relative
}

.article-copy h2 {
    font-size:39px;
    margin:17px 0 23px
}

.article-copy>p:not(.eyebrow) {
    font-size:12px;
    line-height:1.95
}

.article-meta {
    display:flex;
    gap:14px;
    flex-wrap:wrap;
    font-size:8px;
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
    padding:13px 0;
    margin-bottom:27px;
    color:var(--muted)
}

.article-meta a {
    border-bottom:1px solid var(--line)
}

.article-next {
    display:flex;
    align-items:flex-start;
    flex-direction:column;
    gap:10px;
    margin-top:23px
}

.related-stories {
    border-top:1px solid var(--line);
    padding-block:40px 75px
}

.related-stories>h2 {
    font-size:45px;
    margin:19px 0 33px
}

.collection-page {
    padding-bottom:75px
}

.collection-note {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:70px;
    border-top:1px solid var(--line);
    margin-top:50px;
    padding-top:35px;
    align-items:center
}

.collection-note h2 {
    font-size:40px;
    margin-top:16px
}

.collection-note>p {
    font-size:12px;
    line-height:1.95
}

.location-page {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:75px;
    align-items:center;
    padding-bottom:65px
}

.location-page figure {
    position:relative
}

.location-page figure>a {
    display:block;
    position:relative
}

.location-page img {
    width:100%;
    height:330px;
    object-fit:cover
}

.location-page figcaption {
    font-size:8px;
    letter-spacing:.1em;
    margin-top:12px
}

.location-copy h2 {
    font-size:47px;
    margin:15px 0 24px
}

.location-copy address {
    font-size:20px;
    font-family:Georgia,serif;
    line-height:1.6;
    margin-bottom:20px
}

.location-copy>p:not(.eyebrow) {
    font-size:11px;
    line-height:1.95
}

.button-row {
    display:flex;
    align-items:center;
    gap:23px;
    flex-wrap:wrap;
    margin-top:23px
}

.small-note {
    font-size:9px!important;
    margin-top:20px
}

.location-follow {
    border-top:1px solid var(--line);
    padding-block:35px 75px
}

.location-follow>h2 {
    font-size:45px;
    margin:18px 0 30px
}

.pre-visit-list {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:35px
}

.pre-visit-list article {
    border-top:1px solid var(--line);
    padding-top:19px
}

.pre-visit-list article>span {
    font:italic 18px Georgia,serif;
    color:var(--rose)
}

.pre-visit-list h3 {
    font-size:28px;
    margin:17px 0
}

.pre-visit-list p {
    font-size:11px;
    line-height:1.95
}

.pre-visit-list a {
    display:inline-block;
    font-size:10px;
    border-bottom:1px solid var(--line);
    margin-top:17px
}

.press-page {
    display:grid;
    grid-template-columns:.8fr 1.2fr;
    gap:80px;
    align-items:center;
    padding-bottom:65px
}

.press-cover {
    padding:38px;
    background:var(--pale);
    border:1px solid var(--line);
    min-height:410px;
    display:flex;
    flex-direction:column;
    justify-content:center
}

.press-cover .eyebrow {
    font-size:8px
}

.press-name {
    font:70px/1 Georgia,serif;
    letter-spacing:-.07em;
    margin-top:40px
}

.press-year {
    font-size:8px;
    letter-spacing:.16em;
    margin-top:17px
}

.cover-rule {
    height:1px;
    background:var(--ink);
    width:60px;
    margin:35px 0 22px
}

.press-cover>p:last-child {
    font:22px/1.3 Georgia,serif
}

.press-copy h2 {
    font-size:41px;
    margin:17px 0 24px
}

.press-copy>p:not(.eyebrow) {
    font-size:12px;
    line-height:1.95
}

.archive-note {
    display:flex;
    align-items:flex-start;
    gap:12px;
    background:var(--pale);
    border-left:2px solid var(--teal);
    padding:17px 20px;
    margin:24px 0
}

.archive-note>span {
    font-size:17px;
    color:var(--teal);
    line-height:1.5
}

.archive-note p {
    font-size:10px;
    line-height:1.9
}

.press-copy h3 {
    font-size:27px;
    margin:25px 0 18px
}

.press-copy>.text-link {
    margin-top:14px
}

.other-press {
    border-top:1px solid var(--line);
    padding-block:32px 65px
}

.press-other-link {
    font:32px/1.2 Georgia,serif;
    display:flex;
    justify-content:space-between;
    gap:30px;
    margin-top:20px
}

.press-other-link:hover {
    color:var(--teal)
}

.author-page {
    padding-bottom:75px
}

.author-line {
    display:flex;
    align-items:center;
    gap:25px;
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
    padding:27px 0;
    margin-bottom:38px
}

.author-monogram {
    font:italic 64px/1 Georgia,serif;
    background:var(--aqua);
    width:90px;
    height:90px;
    display:grid;
    place-items:center;
    flex-shrink:0
}

.author-line h2 {
    font-size:35px;
    margin:10px 0
}

.author-line p:not(.eyebrow) {
    font-size:11px
}

.monthly-page {
    padding-bottom:75px
}

.archive-summary {
    display:grid;
    grid-template-columns:150px 1fr;
    gap:45px;
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
    padding:29px 0;
    align-items:center
}

.archive-month-number {
    font:78px/1 Georgia,serif;
    color:var(--teal);
    letter-spacing:-.06em;
    border-right:1px solid var(--line)
}

.archive-month-number small {
    display:block;
    font:9px/1.5 Arial,sans-serif;
    letter-spacing:.2em;
    margin-top:12px
}

.archive-summary h2 {
    font-size:36px;
    margin:11px 0 14px
}

.archive-summary p:not(.eyebrow) {
    font-size:11px;
    max-width:650px;
    line-height:1.9
}

.archive-context {
    padding:30px 0;
    border-bottom:1px solid var(--line)
}

.archive-context h3 {
    font-size:28px;
    margin-bottom:14px
}

.archive-context p {
    font-size:11px;
    line-height:1.9;
    max-width:670px
}

.archive-row {
    display:grid;
    grid-template-columns:145px 1fr auto;
    gap:30px;
    padding:25px 0;
    border-bottom:1px solid var(--line);
    align-items:center
}

.archive-row h3 {
    font-size:29px;
    margin-bottom:10px
}

.archive-row p {
    font-size:11px
}

.archive-row>span:last-child {
    font-size:23px
}

.archive-related-heading {
    margin-top:40px
}

.archive-related-heading h2 {
    font-size:43px;
    margin:16px 0 33px
}

.month-navigation {
    display:flex;
    justify-content:space-between;
    gap:30px;
    margin-top:39px;
    padding-top:20px;
    border-top:1px solid var(--line);
    flex-wrap:wrap
}

.all-months {
    border-top:1px solid var(--line);
    margin-top:26px;
    padding-top:20px;
    font-size:10px
}

.all-months summary {
    cursor:pointer
}

.all-months>div {
    display:flex;
    gap:17px 25px;
    flex-wrap:wrap;
    margin-top:18px
}

.all-months a {
    border-bottom:1px solid var(--line)
}

.error-actions {
    display:flex;
    gap:30px;
    margin-bottom:70px;
    flex-wrap:wrap
}

[hidden] {
    display:none!important
}

@media(min-width:1450px) {
    .hero {
        gap:75px
    }

    .hero h1 {
        font-size:98px
    }

}

@media(max-width:1100px) {
    .wrap {
        width:calc(100% - 72px)
    }

    .header-inner {
        gap:20px;
        min-height:105px
    }

    .brand img {
        width:145px
    }

    .header-inner nav {
        gap:23px;
        font-size:10px
    }

    .hero {
        gap:38px;
        padding-top:33px
    }

    .hero h1 {
        font-size:72px
    }

    .hero-copy>.eyebrow {
        font-size:8px
    }

    .hero-actions {
        flex-wrap:wrap;
        gap:17px
    }

    .hero-composition {
        padding-right:17px;
        padding-left:0
    }

    .hero-photo {
        margin-right:8px
    }

    .hero-photo img {
        height:377px
    }

    .hero-inset {
        gap:15px
    }

    .hero-inset figure {
        width:150px
    }

    .hero-inset img {
        height:100px
    }

    .hero-inset>span {
        font-size:7px
    }

    .hero-number {
        font-size:19px;
        right:-10px;
        bottom:77px
    }

    .hero-number em {
        font-size:25px
    }

    .photo-note {
        margin-left:20px;
        font-size:7px
    }

    .service-ribbon>.wrap {
        font-size:8px;
        gap:15px
    }

    .section-heading h2 {
        font-size:49px
    }

    .section-heading {
        gap:35px
    }

    .section-heading>div,.section-heading>p {
        max-width:280px;
        font-size:11px
    }

    .menu-grid {
        gap:25px
    }

    .menu-group-heading {
        gap:8px
    }

    .menu-group-heading h3 {
        font-size:23px
    }

    .menu-item h4 {
        font-size:9px
    }

    .shop-story-grid {
        gap:50px
    }

    .shop-copy h2 {
        font-size:49px
    }

    .shop-photo figure img {
        height:320px
    }

    .story-grid {
        gap:24px
    }

    .story-image img {
        height:190px
    }

    .story-card h3 {
        font-size:28px
    }

    .story-card>.eyebrow {
        font-size:6px
    }

    .visit-grid {
        gap:55px
    }

    .visit h2 {
        font-size:49px
    }

    .visit address {
        font-size:20px
    }

    .visit-photo img {
        height:275px
    }

    .visit-phone {
        display:block
    }

    .visit-phone>strong {
        display:block;
        margin-top:8px
    }

    .faq-section {
        gap:50px
    }

    .footer-top {
        gap:28px
    }

    .photo-article {
        gap:45px
    }

    .press-page {
        gap:50px
    }

    .location-page {
        gap:45px
    }

    .press-name {
        font-size:60px
    }

}

@media(max-width:760px) {
    .wrap {
        width:calc(100% - 40px)
    }

    body {
        font-size:13px
    }

    .topline {
        font-size:6px;
        letter-spacing:.1em
    }

    .topline>.wrap {
        gap:15px
    }

    .topline a {
        white-space:nowrap;
        letter-spacing:.03em
    }

    .header-inner {
        min-height:94px;
        gap:20px
    }

    .brand img {
        width:140px
    }

    .header-inner>.button {
        display:none
    }

    .menu-toggle {
        display:flex;
        align-items:center;
        gap:14px;
        border:1px solid var(--line);
        padding:10px 13px;
        background:transparent;
        font-size:10px;
        min-height:44px;
        cursor:pointer
    }

    .menu-toggle span {
        font-size:15px
    }

    .header-inner nav {
        display:none;
        position:absolute;
        top:100%;
        left:-20px;
        right:-20px;
        background:var(--paper);
        border-top:1px solid var(--line);
        border-bottom:2px solid var(--teal);
        padding:18px 25px;
        z-index:20
    }

    .header-inner nav.is-open {
        display:flex;
        flex-direction:column;
        align-items:stretch;
        gap:2px
    }

    .header-inner nav a {
        font-size:12px;
        padding:12px 0
    }

    .hero {
        grid-template-columns:1fr;
        gap:35px;
        padding-top:17px;
        padding-bottom:40px
    }

    .hero-copy {
        padding:5px 0 0
    }

    .hero h1 {
        font-size:clamp(59px,12.4vw,83px);
        margin:20px 0 25px;
        line-height:1.01
    }

    .hero-copy>.eyebrow {
        font-size:7px
    }

    .tiny-flower {
        font-size:17px;
        margin-right:7px
    }

    .hero-description {
        font-size:12px;
        line-height:1.9;
        max-width:370px
    }

    .hero-actions {
        gap:23px;
        margin-top:24px
    }

    .button {
        font-size:10px;
        padding:15px 20px;
        gap:22px
    }

    .hero-location {
        font-size:8px;
        margin-top:25px
    }

    .hero-composition {
        width:min(490px,100%);
        margin:auto;
        padding:0 20px 46px 4px
    }

    .aqua-backdrop {
        left:45px;
        top:24px
    }

    .hero-photo {
        margin-right:14px
    }

    .hero-photo img {
        height:330px;
        object-position:center
    }

    .hero-inset {
        left:-4px;
        margin-top:-43px;
        gap:19px
    }

    .hero-inset figure {
        width:147px
    }

    .hero-inset img {
        height:94px
    }

    .hero-inset>span {
        font-size:7px
    }

    .hero-number {
        bottom:77px;
        right:-2px;
        font-size:18px
    }

    .hero-number em {
        font-size:24px
    }

    .photo-note {
        font-size:7px;
        margin-left:45px;
        margin-top:18px;
        max-width:200px
    }

    .service-ribbon {
        padding-block:15px
    }

    .service-ribbon>.wrap {
        justify-content:center;
        flex-wrap:wrap;
        gap:8px 15px;
        font-size:7px;
        letter-spacing:.08em
    }

    .service-ribbon>.wrap>span:last-child,.service-ribbon>.wrap>i:last-of-type {
        display:none
    }

    .service-ribbon i {
        font-size:13px
    }

    .service-section {
        padding-block:44px 50px
    }

    .section-heading {
        display:block;
        margin-top:23px;
        margin-bottom:24px
    }

    .section-heading h2 {
        font-size:43px
    }

    .section-heading>div,.section-heading>p {
        max-width:100%;
        font-size:11px;
        margin-top:23px
    }

    .menu-disclaimer {
        font-size:11px;
        max-width:450px
    }

    .menu-filter {
        gap:3px;
        margin-top:23px
    }

    .menu-filter button {
        font-size:9px;
        padding:10px 11px;
        min-height:44px
    }

    .menu-filter button:first-child {
        padding-right:13px
    }

    .menu-grid {
        grid-template-columns:1fr;
        gap:29px;
        margin-top:24px
    }

    .menu-grid.filtered {
        grid-template-columns:1fr
    }

    .menu-group-heading {
        margin-bottom:9px;
        gap:13px
    }

    .menu-group-heading h3 {
        font-size:27px
    }

    .menu-item {
        padding-block:12px
    }

    .menu-item h4,.menu-grid.filtered .menu-item h4 {
        font-size:11px
    }

    .menu-item>span {
        font-size:13px
    }

    .menu-bottom {
        display:block;
        margin-top:25px;
        padding-top:19px
    }

    .menu-bottom .text-link {
        margin-top:16px
    }

    .menu-bottom p {
        font-size:10px
    }

    .shop-story {
        padding-block:45px
    }

    .shop-story-grid {
        grid-template-columns:1fr;
        gap:34px
    }

    .shop-photo {
        padding-bottom:30px;
        padding-right:10px
    }

    .shop-photo figure img {
        height:auto;
        min-height:230px;
        object-fit:cover
    }

    .photo-slip {
        font-size:23px;
        right:-3px;
        bottom:0;
        padding:17px 23px
    }

    .photo-slip em {
        font-size:20px
    }

    .shop-copy h2 {
        font-size:45px;
        margin:22px 0
    }

    .shop-copy>p:not(.section-label) {
        font-size:11px
    }

    .journal {
        padding-block:46px 49px
    }

    .story-grid {
        grid-template-columns:1fr;
        gap:32px
    }

    .story-image img {
        height:auto;
        aspect-ratio:1.5;
        object-fit:cover
    }

    .story-card>.eyebrow {
        font-size:7px;
        margin-top:16px
    }

    .story-card h3 {
        font-size:33px;
        margin:11px 0 18px
    }

    .story-card h3 br {
        display:none
    }

    .story-link {
        font-size:10px
    }

    .visit {
        padding-block:36px 47px
    }

    .visit-grid {
        grid-template-columns:1fr;
        gap:31px;
        margin-top:23px
    }

    .visit h2 {
        font-size:45px
    }

    .visit address {
        font-size:21px;
        margin-top:22px
    }

    .contact-row {
        gap:15px 25px;
        font-size:11px;
        margin-bottom:24px
    }

    .visit-note {
        max-width:100%;
        font-size:9px
    }

    .visit-photo {
        padding:17px 17px 0 0
    }

    .visit-photo img {
        height:auto;
        aspect-ratio:1.4;
        object-fit:cover
    }

    .visit-phone {
        display:flex;
        gap:15px;
        flex-wrap:wrap;
        margin-top:23px
    }

    .visit-phone>strong {
        margin:0;
        font-size:20px
    }

    .faq-section {
        grid-template-columns:1fr;
        gap:27px;
        padding-block:35px 45px
    }

    .faq-section h2 {
        font-size:44px;
        margin-top:21px
    }

    .faq-list details {
        padding-block:18px
    }

    .faq-list summary {
        font-size:11px
    }

    .faq-list p {
        font-size:10px
    }

    .closing {
        padding-block:34px
    }

    .closing>.wrap>.eyebrow {
        font-size:7px;
        max-width:290px
    }

    .closing>.wrap>div {
        display:block;
        margin-top:20px
    }

    .closing h2 {
        font-size:46px
    }

    .closing .button {
        margin-top:26px
    }

    .booking-note {
        font-size:8px;
        max-width:100%;
        line-height:1.9
    }

    footer {
        padding-top:40px
    }

    .footer-top {
        grid-template-columns:1fr 1fr;
        gap:30px 25px
    }

    .footer-signature {
        grid-column:1/-1
    }

    .footer-signature>span {
        font-size:45px
    }

    .footer-signature p {
        margin-top:16px
    }

    .footer-top h2 {
        font-size:8px;
        margin-bottom:15px
    }

    .footer-top a,.footer-top>div>p {
        font-size:8px;
        overflow-wrap:anywhere
    }

    .footer-top>div:last-child {
        grid-column:1/-1
    }

    .archive-directory {
        font-size:9px
    }

    .archive-directory>div {
        display:flex;
        gap:9px 20px;
        flex-wrap:wrap
    }

    .footer-bottom {
        align-items:flex-start;
        font-size:7px;
        margin-top:29px;
        gap:20px
    }

    .footer-bottom p {
        max-width:240px
    }

    .page-intro {
        padding-top:13px;
        padding-bottom:31px
    }

    .breadcrumb {
        font-size:7px;
        margin-bottom:26px;
        gap:10px
    }

    .page-intro>.eyebrow {
        font-size:7px
    }

    .page-intro h1 {
        font-size:clamp(44px,9.9vw,62px);
        line-height:1.04;
        margin-top:18px;
        overflow-wrap:anywhere
    }

    .intro-text {
        font-size:11px;
        margin-top:23px;
        line-height:1.9
    }

    .photo-article {
        grid-template-columns:1fr;
        gap:28px;
        padding-bottom:43px
    }

    .article-image figcaption {
        font-size:6px;
        max-width:300px;
        line-height:1.9
    }

    .article-meta {
        font-size:7px;
        gap:10px;
        margin-bottom:24px
    }

    .article-copy h2 {
        font-size:33px;
        margin:15px 0 20px
    }

    .article-copy>p:not(.eyebrow) {
        font-size:11px
    }

    .article-next {
        margin-top:19px
    }

    .related-stories {
        padding-block:32px 46px
    }

    .related-stories>h2 {
        font-size:39px;
        margin-bottom:29px
    }

    .collection-page {
        padding-bottom:45px
    }

    .collection-note {
        grid-template-columns:1fr;
        gap:23px;
        padding-top:29px;
        margin-top:35px
    }

    .collection-note h2 {
        font-size:36px
    }

    .collection-note>p {
        font-size:11px
    }

    .location-page {
        grid-template-columns:1fr;
        gap:30px;
        padding-bottom:43px
    }

    .location-page img {
        height:auto
    }

    .location-page figcaption {
        font-size:7px
    }

    .location-copy h2 {
        font-size:41px;
        margin-top:14px;
        margin-bottom:22px
    }

    .location-copy address {
        font-size:20px
    }

    .location-copy>p:not(.eyebrow) {
        font-size:11px
    }

    .location-follow {
        padding-block:32px 45px
    }

    .location-follow>h2 {
        font-size:39px
    }

    .pre-visit-list {
        grid-template-columns:1fr;
        gap:26px
    }

    .pre-visit-list h3 {
        font-size:29px;
        margin:16px 0
    }

    .press-page {
        grid-template-columns:1fr;
        gap:31px;
        padding-bottom:44px
    }

    .press-cover {
        max-width:390px;
        min-height:350px;
        padding:30px
    }

    .press-name {
        font-size:72px;
        margin-top:29px
    }

    .press-cover>p:last-child {
        font-size:24px
    }

    .press-copy h2 {
        font-size:34px;
        margin-top:14px
    }

    .press-copy>p:not(.eyebrow) {
        font-size:11px
    }

    .archive-note {
        padding:16px;
        margin-block:23px;
        gap:10px
    }

    .archive-note p {
        font-size:9px
    }

    .press-copy h3 {
        font-size:29px
    }

    .other-press {
        padding-block:28px 45px
    }

    .press-other-link {
        font-size:26px;
        gap:20px
    }

    .author-page {
        padding-bottom:45px
    }

    .author-line {
        gap:19px;
        padding-block:23px;
        margin-bottom:30px;
        align-items:flex-start
    }

    .author-monogram {
        width:65px;
        height:65px;
        font-size:47px
    }

    .author-line h2 {
        font-size:32px;
        margin-top:8px
    }

    .author-line p:not(.eyebrow) {
        font-size:10px
    }

    .monthly-page {
        padding-bottom:44px
    }

    .archive-summary {
        grid-template-columns:73px 1fr;
        gap:22px;
        padding-block:23px;
        align-items:start
    }

    .archive-month-number {
        font-size:48px;
        padding-top:5px
    }

    .archive-month-number small {
        font-size:8px;
        margin-top:10px
    }

    .archive-summary h2 {
        font-size:30px;
        margin:9px 0 14px
    }

    .archive-summary p:not(.eyebrow) {
        font-size:10px;
        line-height:1.9
    }

    .archive-context {
        padding-block:25px
    }

    .archive-context h3 {
        font-size:27px
    }

    .archive-context p {
        font-size:10px
    }

    .archive-row {
        grid-template-columns:1fr auto;
        gap:17px;
        padding-block:23px
    }

    .archive-row>.eyebrow {
        grid-column:1/-1
    }

    .archive-row h3 {
        font-size:27px
    }

    .archive-row p {
        font-size:10px
    }

    .archive-related-heading {
        margin-top:31px
    }

    .archive-related-heading h2 {
        font-size:37px;
        margin-bottom:27px
    }

    .month-navigation {
        gap:19px;
        margin-top:29px;
        padding-top:17px
    }

    .month-navigation .text-link {
        font-size:9px
    }

    .all-months {
        margin-top:24px;
        padding-top:18px
    }

    .error-actions {
        gap:25px;
        margin-bottom:45px
    }

    .photo-dialog {
        padding:15px;
        max-width:94vw
    }

    .photo-dialog>p {
        font-size:9px
    }

}

@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior:auto
    }

    * {
        transition:none!important
    }

}

/* Halaman papan nama: komponen khusus agar halaman lain tetap sama. */
.window-intro {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(240px, 0.8fr);
    column-gap: 64px;
    padding-top: 28px;
    padding-bottom: 44px;
    border-bottom: 1px solid var(--line);
}

.window-intro .breadcrumb {
    grid-column: 1 / -1;
    margin-bottom: 32px;
}

.window-intro > .eyebrow {
    grid-column: 1 / -1;
    margin-bottom: 20px;
    font-size: 10px;
    letter-spacing: 0.1em;
}

.window-intro h1 {
    margin: 0;
    max-width: 20ch;
    font-size: clamp(42px, 5.1vw, 66px);
    line-height: 1.09;
    letter-spacing: -0.035em;
    overflow-wrap: break-word;
}

.window-intro h1 em {
    color: var(--teal);
    font-size: 0.72em;
    line-height: 1.3;
    letter-spacing: -0.02em;
}

.window-intro > .intro-text {
    align-self: end;
    margin: 0 0 5px;
    max-width: 340px;
    padding-left: 24px;
    border-left: 2px solid var(--aqua);
    font-size: 14px;
    line-height: 1.9;
}

.window-article {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    gap: 64px;
    align-items: center;
    padding-top: 54px;
    padding-bottom: 62px;
}

.window-image,
.window-copy {
    min-width: 0;
}

.window-figure {
    padding: 14px;
    border: 1px solid var(--line);
    background: var(--aqua);
}

.window-figure > a {
    display: block;
    position: relative;
    overflow: hidden;
    background: var(--paper);
}

.window-figure img {
    width: 100%;
    height: auto;
}

.window-figure figcaption {
    padding-top: 14px;
    color: var(--teal);
    font-size: 9px;
    line-height: 1.8;
    letter-spacing: 0.04em;
}

.window-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
    margin: 0 0 24px;
    padding-bottom: 15px;
    border-bottom: 1px solid var(--line);
    color: var(--muted);
    font-size: 10px;
    line-height: 1.7;
}

.window-meta a {
    border-bottom: 1px solid var(--line);
}

.window-copy > .eyebrow {
    font-size: 9px;
    letter-spacing: 0.12em;
}

.window-copy h2 {
    margin: 14px 0 20px;
    color: var(--teal);
    font-size: clamp(30px, 3.2vw, 40px);
    line-height: 1.15;
    letter-spacing: -0.025em;
}

.window-copy > p:not(.eyebrow) {
    font-size: 14px;
    line-height: 1.9;
}

.window-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 28px;
}

.window-action {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    min-height: 46px;
    padding: 12px 16px;
    border: 1px solid var(--teal);
    color: var(--teal);
    font-size: 11px;
    line-height: 1.6;
}

.window-action > span {
    font-size: 18px;
}

.window-action--solid {
    background: var(--teal);
    color: var(--paper);
}

.window-action:hover {
    border-color: var(--ink);
    background: var(--ink);
    color: var(--paper);
}

.window-related {
    padding-top: 34px;
    padding-bottom: 64px;
    border-top: 1px solid var(--line);
}

.window-related > h2 {
    margin: 18px 0 30px;
    font-size: clamp(32px, 3.7vw, 46px);
    line-height: 1.15;
    letter-spacing: -0.025em;
}

.window-related > h2 em {
    color: var(--teal);
    font-size: 0.8em;
}

.window-gallery {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 28px;
}

.window-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--line);
}

.window-card-image {
    overflow: hidden;
    aspect-ratio: 1.45;
    background: var(--pale);
}

.window-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.window-card > .eyebrow {
    margin: 18px 0 10px;
    font-size: 9px;
    letter-spacing: 0.06em;
}

.window-card h3 {
    margin-bottom: 20px;
    font-size: 28px;
    line-height: 1.2;
    letter-spacing: -0.025em;
}

.window-card-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    margin-top: auto;
    color: var(--teal);
    font-size: 11px;
    line-height: 1.6;
}

.window-card-link > span {
    font-size: 18px;
}

.window-card:hover h3,
.window-meta a:hover {
    color: var(--rose);
}

@media (max-width: 900px) {
    .window-intro {
        grid-template-columns: minmax(0, 1fr);
        padding-top: 18px;
        padding-bottom: 30px;
    }

    .window-intro .breadcrumb,
    .window-intro > .eyebrow {
        grid-column: auto;
    }

    .window-intro > .intro-text {
        max-width: 620px;
        margin-top: 24px;
        padding-left: 18px;
    }

    .window-article {
        gap: 35px;
    }

    .window-gallery {
        gap: 20px;
    }

    .window-card h3 {
        font-size: 24px;
    }
}

@media (max-width: 650px) {
    .window-intro .breadcrumb {
        margin-bottom: 25px;
    }

    .window-intro > .eyebrow {
        font-size: 9px;
        line-height: 1.9;
        letter-spacing: 0.05em;
    }

    .window-intro h1 {
        max-width: none;
        font-size: clamp(38px, 10.3vw, 58px);
    }

    .window-intro > .intro-text {
        font-size: 13px;
    }

    .window-article {
        grid-template-columns: minmax(0, 1fr);
        gap: 30px;
        padding-top: 30px;
        padding-bottom: 38px;
    }

    .window-figure {
        padding: 10px;
    }

    .window-figure figcaption {
        font-size: 8px;
    }

    .window-meta {
        gap: 8px 14px;
        font-size: 9px;
    }

    .window-copy h2 {
        font-size: 34px;
    }

    .window-copy > p:not(.eyebrow) {
        font-size: 13px;
    }

    .window-actions {
        flex-direction: column;
    }

    .window-action {
        width: 100%;
    }

    .window-related {
        padding-top: 28px;
        padding-bottom: 40px;
    }

    .window-gallery {
        grid-template-columns: minmax(0, 1fr);
        gap: 30px;
    }

    .window-card-image {
        aspect-ratio: 1.5;
    }

    .window-card h3 {
        font-size: 28px;
    }
}
