:root {
    --ivory:#f8f6f2;
    --ink:#302e28;
    --muted:#7c776f;
    --olive:#60624d;
    --soft:#eee8df;
    --gold:#ac9372;
    --line:#ded8cd;
    --ease:cubic-bezier(.22,1,.36,1)
}
* {
    box-sizing:border-box
}
html {
    scroll-behavior:smooth;
    scroll-padding-top:105px
}
body {
    margin:0;
    background:var(--ivory);
    color:var(--ink);
    font:15px/1.75 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif
}
img {
    display:block;
    max-width:100%;
    object-fit:cover
}
h1,h2,h3,.brand,.quote {
    font-family:Georgia,'Times New Roman',serif;
    font-weight:400;
    line-height:1.08;
    letter-spacing:-.045em
}
h1 {
    font-size:clamp(2.9rem,5.3vw,5.7rem);
    margin:22px 0 28px
}
h2 {
    font-size:clamp(2.2rem,4vw,4rem);
    margin:16px 0 24px
}
h3 {
    font-size:1.55rem
}
h1 em,h2 em {
    font-weight:400;
    color:var(--olive)
}
p {
    color:var(--muted)
}
a {
    color:inherit;
    text-decoration:none
}
button,input,select,textarea {
    font:inherit
}
button,a,input,select,textarea,summary {
    -webkit-tap-highlight-color:transparent
}
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible,select:focus-visible,textarea:focus-visible {
    outline:2px solid var(--olive);
    outline-offset:5px
}
::selection {
    background:#dbd5c4;
    color:var(--ink)
}
.gold,.brand>span {
    color:var(--gold)
}
.skip-link {
    position:fixed;
    top:10px;
    left:10px;
    z-index:50;
    transform:translateY(-150%);
    background:white;
    padding:12px
}
.skip-link:focus {
    transform:none
}
.header {
    height:86px;
    padding:0 5vw;
    display:flex;
    gap:24px;
    align-items:center;
    justify-content:space-between;
    background:#fdfcf9f5;
    position:sticky;
    top:0;
    z-index:30;
    border-bottom:1px solid transparent;
    transition:box-shadow .3s,border-color .3s;
    backdrop-filter:blur(14px)
}
.header.scrolled {
    box-shadow:0 5px 24px #302e2808;
    border-color:var(--line)
}
.brand {
    font-size:2.05rem;
    white-space:nowrap
}
.brand small {
    display:block;
    font:7px/1.8 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
    letter-spacing:.26em;
    text-align:center;
    color:var(--muted);
    margin-top:4px
}
.site-logo {
    display:inline-block;
    max-height:46px;
    max-width:210px;
    height:auto;
    width:auto;
    object-fit:contain;
    vertical-align:middle
}
.site-logo-footer {
    max-height:40px;
    max-width:180px;
    margin-bottom:10px
}
.header nav {
    display:flex;
    gap:25px;
    font-size:.76rem
}
.header nav a {
    position:relative;
    padding:8px 0
}
.header nav a:after {
    content:'';
    position:absolute;
    bottom:3px;
    left:0;
    right:0;
    height:1px;
    background:var(--olive);
    transform:scaleX(0);
    transform-origin:left;
    transition:transform .4s var(--ease)
}
.header nav a:hover:after,.header nav a[aria-current]:after {
    transform:scaleX(1)
}
.pill {
    display:inline-flex;
    gap:24px;
    align-items:center;
    justify-content:center;
    border:1px solid transparent;
    padding:13px 23px;
    border-radius:100px;
    font-size:.78rem;
    font-weight:500;
    cursor:pointer;
    position:relative;
    transition:transform .45s var(--ease),box-shadow .45s var(--ease);
    text-align:center
}
.pill span {
    display:inline-block;
    font-size:1.15rem;
    transition:transform .45s var(--ease)
}
.pill.dark {
    background:var(--olive);
    color:#fff
}
.pill.light {
    background:#faf8f3;
    color:var(--ink)
}
.pill:hover {
    transform:translateY(-4px);
    box-shadow:0 10px 25px #302e2820
}
.pill:hover span {
    transform:translate(3px,-3px)
}
.pill:active {
    transform:translateY(0) scale(.97)
}
.menu-toggle {
    display:none
}
.text-link {
    display:inline-flex;
    align-items:center;
    gap:25px;
    font-size:.84rem;
    padding:6px 0;
    border-bottom:1px solid #aca393;
    margin-top:16px;
    transition:gap .4s var(--ease)
}
.text-link:hover {
    gap:38px
}
.text-link span {
    display:inline-block;
    transition:transform .4s
}
.text-link:hover span {
    transform:translateX(3px)
}
.eyebrow {
    font-size:.63rem;
    letter-spacing:.31em;
    font-weight:500;
    color:#8d806d;
    text-transform:uppercase
}
.section {
    max-width:1360px;
    margin:0 auto;
    padding:88px 6vw
}
.center {
    text-align:center;
    margin:0 auto 40px
}
.center h2 {
    margin:12px 0
}
.center p {
    margin:0
}
.section-index {
    display:flex;
    justify-content:space-between;
    gap:20px;
    border-top:1px solid var(--line);
    padding-top:18px;
    font-size:.65rem;
    letter-spacing:.16em;
    color:var(--muted)
}
.hero {
    height:min(760px,83svh);
    min-height:590px;
    position:relative;
    isolation:isolate;
    color:white;
    overflow:hidden
}
.hero-image,.hero-video,.hero-shade {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    z-index:-1
}
.hero-image {
    object-position:center 58%
}
.hero-shade {
    background:linear-gradient(90deg,#171914a6,#17191440 62%,#17191410),linear-gradient(0deg,#17191466,transparent 35%)
}
.hero-text {
    max-width:800px;
    padding:95px 0 120px;
    margin:0 8vw
}
.hero-text h1 {
    font-size:clamp(3rem,5.1vw,5.3rem);
    margin:20px 0;
    letter-spacing:-.045em
}
.hero-text em {
    color:#efe3d1;
    font-style:normal
}
.hero-text p {
    max-width:470px;
    color:#efebe2;
    line-height:1.65;
    margin:0 0 30px
}
.hero .eyebrow {
    color:#efe6d6
}
.hero-bottom {
    position:absolute;
    bottom:25px;
    left:4vw;
    right:4vw;
    display:flex;
    align-items:center;
    gap:24px;
    justify-content:space-between;
    font-size:.72rem;
    color:#f2eadf
}
.scroll-cue {
    display:flex;
    align-items:center;
    gap:12px
}
.scroll-cue>span {
    display:grid;
    place-items:center;
    border:1px solid #fff6;
    border-radius:50%;
    width:32px;
    height:42px
}

.about-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12%;
    align-items:center
}
.photo-collage {
    position:relative;
    padding:0 55px 30px 0
}
.photo-frame {
    height:425px;
    overflow:hidden;
    border-radius:180px 0 0 0
}
.photo-frame img {
    width:100%;
    height:100%
}
.collage-inset {
    position:absolute;
    right:0;
    top:100px;
    width:43%;
    height:245px;
    border:6px solid var(--ivory);
    box-shadow:0 12px 30px #302e2815
}
.photo-caption {
    display:block;
    font-size:.65rem;
    letter-spacing:.11em;
    color:var(--muted);
    padding-top:22px
}
.intro {
    position:relative
}
.intro h2 {
    font-size:clamp(2.7rem,4.6vw,4.6rem)
}
.intro p {
    max-width:470px
}
.botanical {
    font:110px/1 Georgia,serif;
    color:#959780;
    transform:rotate(-30deg);
    pointer-events:none
}
.intro .botanical {
    position:absolute;
    right:0;
    top:-100px
}
.services-section {
    padding-top:35px;
    padding-bottom:35px;
    max-width:1470px
}
.services-grid {
    display:grid;
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:12px
}
.service-tile {
    display:block;
    min-width:0;
    transition:transform .6s var(--ease)
}
.tile-image {
    height:235px;
    overflow:hidden;
    position:relative;
    border-radius:6px 6px 0 0
}
.tile-image:after {
    content:'';
    position:absolute;
    inset:0;
    background:#302e2810;
    transition:background .6s
}
.tile-image img {
    width:100%;
    height:100%;
    transition:transform 1.1s var(--ease),filter .8s
}
.tile-arrow {
    position:absolute;
    right:16px;
    bottom:16px;
    width:42px;
    height:42px;
    border-radius:50%;
    background:var(--ivory);
    display:grid;
    place-items:center;
    z-index:1;
    opacity:0;
    transform:translate(-10px,10px);
    transition:transform .5s var(--ease),opacity .5s
}
.tile-copy {
    text-align:center;
    background:#fff9;
    padding:20px 7px 22px
}
.tile-copy h3 {
    font:500 .88rem/1.4 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
    letter-spacing:0;
    margin:0 0 10px
}
.tile-link {
    display:inline-flex;
    gap:12px;
    align-items:center;
    font-size:.68rem;
    color:#706b60
}
.tile-link>span {
    transition:transform .5s
}
.service-tile:hover {
    transform:translateY(-9px)
}
.service-tile:hover .tile-image img {
    transform:scale(1.075)
}
.service-tile:hover .tile-arrow {
    opacity:1;
    transform:none
}
.service-tile:hover .tile-link>span {
    transform:translateX(5px)
}
.service-tile:focus-visible .tile-arrow {
    opacity:1;
    transform:none
}
.steps {
    display:grid;
    grid-template-columns:repeat(5,1fr);
    gap:40px;
    text-align:center
}
.steps>div {
    position:relative
}
.steps>div:not(:last-child):after {
    content:'↗';
    position:absolute;
    right:-25px;
    top:24px;
    color:#9b968b
}
.step-num {
    display:inline-grid;
    place-items:center;
    border:1px solid #e5d9c9;
    background:#f0e7dc;
    color:#82725a;
    border-radius:50%;
    width:66px;
    height:66px;
    font:italic 1.6rem Georgia,serif;
    transition:transform .5s var(--ease),border-radius .5s
}
.steps>div:hover .step-num {
    transform:translateY(-7px) rotate(-8deg);
    border-radius:35%
}
.steps h3 {
    font-size:1.25rem;
    letter-spacing:-.02em;
    margin:18px 0 10px
}
.steps p {
    font-size:.81rem
}
.concept {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:6px;
    max-width:1470px;
    padding:20px 3vw
}
.concept-photo {
    position:relative;
    overflow:hidden;
    min-height:520px
}
.concept-photo>img {
    width:100%;
    height:100%;
    position:absolute;
    inset:0;
    transition:transform 1.3s var(--ease)
}
.concept-photo:after {
    content:'';
    position:absolute;
    inset:0;
    background:linear-gradient(0deg,#1e211cbb,transparent 85%)
}
.concept-photo>div {
    position:absolute;
    bottom:36px;
    left:36px;
    right:30px;
    z-index:1;
    color:white
}
.concept-photo h2 em {
    color:#ece1cd
}
.concept-photo p {
    max-width:300px;
    color:#eee7dc
}
.concept-photo .eyebrow {
    color:#e5d7be
}
.concept-photo:hover>img {
    transform:scale(1.045)
}
.concept-side {
    display:grid;
    grid-template-rows:1.1fr 1fr;
    gap:6px;
    min-width:0
}
.atmosphere {
    position:relative;
    overflow:hidden
}
.atmosphere>img {
    width:100%;
    height:100%;
    position:absolute;
    inset:0;
    transition:transform 1s var(--ease)
}
.atmosphere>span {
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:22px;
    color:#fff;
    background:#24271c55;
    font-size:.85rem
}
.atmosphere>span>span {
    display:grid;
    place-items:center;
    width:48px;
    height:48px;
    border:1px solid #fff8;
    border-radius:50%;
    font-size:1.3rem;
    transition:transform .5s
}
.atmosphere:hover img {
    transform:scale(1.07)
}
.atmosphere:hover>span>span {
    transform:rotate(45deg)
}
.concept-small {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:6px;
    min-height:0
}
.concept-small img {
    width:100%;
    height:100%;
    max-height:250px
}
.faqs {
    display:grid;
    grid-template-columns:1.8fr .8fr;
    gap:60px
}
.faqs h2 {
    margin:12px 0
}
.faq-list {
    margin-top:30px
}
.faq-list details {
    border-bottom:1px solid var(--line);
    padding:0;
    margin:0
}
.faq-list summary {
    cursor:pointer;
    display:flex;
    align-items:center;
    gap:18px;
    list-style:none;
    padding:19px 0;
    font-size:.88rem;
    user-select:none;
    -webkit-user-select:none;
    transition:padding .35s var(--ease), color .3s;
}
.faq-list summary::-webkit-details-marker {
    display:none;
}
.faq-list summary:after {
    content:'+';
    font-size:1.3rem;
    font-weight:300;
    line-height:1;
    margin-left:auto;
    flex-shrink:0;
    transition:transform .4s var(--ease), color .3s;
}
.faq-list details[open]:not(.is-closing) summary:after {
    transform:rotate(45deg);
    color:var(--olive);
}
.faq-list details[open]:not(.is-closing) summary {
    color:var(--olive);
}
.faq-list summary:hover {
    padding-left:8px;
    color:var(--olive);
}
.faq-list details p {
    font-size:.86rem;
    padding:0 18px 14px 0;
    margin-top:0;
    line-height:1.75;
    color:var(--muted);
}
.faq-number {
    font-size:.65rem;
    color:var(--gold);
    flex-shrink:0;
}
}
.quote {
    background:#eee8df8c;
    align-self:center;
    text-align:center;
    padding:35px 15px 25px;
    font-size:clamp(1.6rem,2.5vw,2.3rem);
    font-style:italic;
    position:relative
}
.quote>span {
    font-size:4rem;
    color:var(--gold)
}
.quote p {
    margin:0;
    line-height:1.25;
    color:var(--ink)
}
.quote .botanical {
    font-size:75px;
    text-align:right
}
.closing {
    position:relative;
    isolation:isolate;
    overflow:hidden;
    background:#35392e;
    color:white;
    text-align:center;
    padding:75px 20px
}
.closing>img {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    z-index:-2
}
.closing:after {
    content:'';
    position:absolute;
    inset:0;
    background:#22261dc4;
    z-index:-1
}
.closing .eyebrow {
    color:#e5dbc7
}
.closing h2 {
    font-size:clamp(2rem,3.5vw,3.5rem);
    margin:20px auto 28px
}
.footer {
    padding:65px 6vw 35px;
    display:grid;
    grid-template-columns:1.2fr 1.1fr 1.35fr 1fr;
    gap:36px;
    background:#f0ede6;
    align-items:start;
}
.footer p {
    font-size:.82rem;
    line-height:1.8;
}
.footer-col {
    display:flex;
    flex-direction:column;
    min-width:0;
}
.footer-col-title {
    font-size:.85rem;
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:.08em;
    color:var(--olive);
    margin-bottom:16px;
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
}
.footer-contact-list {
    list-style:none;
    padding:0;
    margin:0;
    display:flex;
    flex-direction:column;
    gap:10px;
    font-size:.82rem;
}
.footer-contact-list li {
    display:flex;
    flex-direction:column;
    gap:2px;
}
.footer-contact-label {
    font-size:.72rem;
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:.04em;
    color:var(--muted);
}
.footer-contact-list a {
    color:var(--ink);
    text-decoration:none;
    word-break:break-word;
    transition:color .2s;
}
.footer-contact-list a:hover {
    color:var(--olive);
    text-decoration:underline;
}
.footer-direct-map {
    width:100%;
    height:210px;
    border-radius:8px;
    overflow:hidden;
    border:1px solid var(--line);
    background:#faf7f2;
}
.footer-direct-map iframe {
    width:100%;
    height:100%;
    min-height:210px;
    border:0;
    display:block;
}
.footer nav.footer-quick-nav {
    display:flex;
    flex-direction:column;
    gap:10px;
    font-size:.82rem;
}
.footer nav.footer-quick-nav a {
    color:var(--ink);
    text-decoration:none;
    transition:transform .2s, color .2s;
    display:inline-block;
}
.footer nav.footer-quick-nav a:hover {
    color:var(--olive);
    transform:translateX(4px);
}
.footer-cookie-link {
    background:none;
    border:none;
    padding:0;
    margin-top:4px;
    font:inherit;
    font-size:.82rem;
    color:var(--muted);
    cursor:pointer;
    text-align:left;
    display:inline-block;
    transition:color .2s;
}
.footer-cookie-link:hover {
    color:var(--ink);
    text-decoration:underline;
}
.footer-note {
    grid-column:1/-1;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    border-top:1px solid var(--line);
    padding-top:25px;
    font-size:.72rem;
    color:var(--muted);
}
.footer-note .text-link {
    margin:0;
    font-size:.72rem;
}
@media(max-width:1080px) and (min-width:761px) {
    .footer {
        grid-template-columns:repeat(2, minmax(0, 1fr));
        gap:36px;
    }
}
.contact-direct-info {
    margin:24px 0 28px;
    padding:20px 22px;
    background:#fbf9f5;
    border:1px solid var(--line);
    border-left:3px solid var(--olive);
    border-radius:4px
}
.contact-direct-list {
    list-style:none;
    padding:0;
    margin:0;
    display:flex;
    flex-direction:column;
    gap:11px
}
.contact-direct-item {
    display:flex;
    flex-direction:column;
    gap:2px;
    font-size:.82rem
}
.contact-direct-label {
    font-size:.7rem;
    text-transform:uppercase;
    letter-spacing:.08em;
    color:var(--muted);
    font-weight:600
}
.contact-direct-val {
    color:var(--ink);
    text-decoration:none;
    font-weight:500;
    line-height:1.5;
    word-break:break-word
}
.contact-direct-val a {
    color:var(--ink);
    text-decoration:none;
    transition:color .2s
}
.contact-direct-val a:hover {
    color:var(--olive)
}
/* Editorial pages share typography, while each composition follows its content. */
.editorial-heading {
    padding-bottom:30px
}
.heading-row {
    display:grid;
    grid-template-columns:1.6fr 1fr;
    gap:10%;
    align-items:end;
    margin-bottom:45px
}
.heading-row h1 {
    margin-bottom:0
}
.heading-row p {
    max-width:330px
}
.collection {
    padding-top:12px
}
.collection-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:65px 48px
}
.collection-grid .service-tile:nth-child(even) {
    margin-top:100px
}
.collection-grid .tile-image {
    height:490px;
    border-radius:180px 0 0 0
}
.collection-grid .service-tile:nth-child(even) .tile-image {
    border-radius:0 0 180px 0
}
.collection-grid .tile-copy {
    display:grid;
    grid-template-columns:auto 1fr auto;
    gap:18px;
    text-align:left;
    background:transparent;
    padding:24px 0;
    border-bottom:1px solid var(--line);
    align-items:center
}
.collection-grid .tile-copy h3 {
    font:1.8rem Georgia,serif;
    margin:0
}
.tile-number {
    font-size:.65rem;
    color:var(--gold)
}
.experience-note {
    text-align:center;
    padding-top:20px;
    padding-bottom:110px
}
.experience-note h2 {
    line-height:1.18
}
.detail {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:9%;
    align-items:center;
    padding-top:55px
}
.detail h1 {
    font-size:clamp(3.2rem,5.8vw,6rem)
}
.breadcrumb {
    display:block;
    font-size:.72rem;
    color:var(--muted);
    margin-bottom:55px
}
.lead {
    font-size:1.12rem;
    color:var(--ink);
    line-height:1.8
}
.body-copy {
    white-space:pre-line;
    color:var(--muted);
    font-size:.93rem;
    margin:22px 0 30px
}
.detail-footnote {
    font-size:.7rem;
    margin-top:20px
}
.detail-visual {
    position:relative;
    padding:0 0 30px
}
.detail-photo {
    height:620px;
    border-radius:220px 220px 0 0;
    overflow:hidden
}
.detail-photo img {
    width:100%;
    height:100%;
    transition:transform 1.4s var(--ease)
}
.detail-photo:hover img {
    transform:scale(1.05)
}
.image-seal {
    position:absolute;
    right:-20px;
    bottom:0;
    background:var(--soft);
    border:7px solid var(--ivory);
    width:150px;
    height:150px;
    border-radius:50%;
    display:grid;
    place-items:center;
    text-align:center;
    padding:20px;
    font:italic 1.2rem/1.2 Georgia,serif
}
.cafe-detail .detail-photo {
    border-radius:240px 0 0 0
}
.cafe-detail .image-seal {
    background:var(--olive);
    color:white
}
.moments-section {
    padding-top:15px
}
.moments {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:60px;
    margin-top:45px
}
.moments h2 {
    font-size:1.8rem;
    letter-spacing:-.03em
}
.moments p {
    font-size:.87rem
}
.moment-number {
    font:italic 2.5rem Georgia,serif;
    color:#bbaa90
}
.story-band {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:9%;
    align-items:center
}
.story-band>img {
    width:100%;
    height:480px;
    border-radius:0 0 180px 0
}
.story-band p {
    max-width:400px
}
.about-page {
    padding-bottom:15px
}
.about-title {
    max-width:850px;
    margin-bottom:45px
}
.about-title p {
    max-width:450px
}
.about-panorama {
    height:540px;
    position:relative;
    overflow:hidden
}
.about-panorama img {
    width:100%;
    height:100%
}
.about-panorama>span {
    position:absolute;
    bottom:25px;
    left:30px;
    color:#fff;
    letter-spacing:.16em;
    font-size:.65rem;
    background:#24271c70;
    padding:8px 16px
}
.about-story {
    display:grid;
    grid-template-columns:1fr 1.2fr;
    gap:12%
}
.about-story p:first-child {
    margin-top:0
}
.about-story .botanical {
    font-size:90px;
    max-width:150px
}
.faq-page {
    display:grid;
    grid-template-columns:1fr 1.25fr;
    gap:10%;
    align-items:start
}
.faq-intro {
    position:sticky;
    top:135px
}
.faq-intro h1 {
    font-size:clamp(2.7rem,4vw,4.3rem)
}
.faq-intro img {
    height:240px;
    width:85%;
    border-radius:100px 0 0 0;
    margin-top:30px
}
.faq-content {
    padding-top:10px
}
.faq-help {
    padding:35px;
    margin-top:45px;
    background:var(--soft)
}
.faq-help h2 {
    font-size:2.1rem
}
.contact-page {
    display:grid;
    grid-template-columns:1fr 1.2fr;
    gap:8%;
    align-items:start
}
.contact-intro h1 {
    font-size:clamp(2.8rem,4.4vw,4.6rem)
}
.contact-photo {
    position:relative;
    margin-top:35px
}
.contact-photo img {
    height:400px;
    width:100%;
    border-radius:130px 0 0 0
}
.contact-photo>span {
    position:absolute;
    bottom:20px;
    left:20px;
    right:20px;
    color:white;
    font:italic 1.4rem Georgia,serif;
    text-shadow:0 1px 10px #302e28
}
.contact-panel {
    background:#fff9;
    padding:38px;
    border:1px solid #e7e1d6
}
.contact-panel h2 {
    font-size:2.4rem;
    margin-bottom:10px
}
.form-description {
    font-size:.75rem
}
.contact-form {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:21px 18px;
    margin-top:32px
}
.contact-form label {
    display:block;
    font-size:.75rem
}
.contact-form input,.contact-form select,.contact-form textarea {
    display:block;
    width:100%;
    padding:12px 2px;
    margin-top:5px;
    border:0;
    border-bottom:1px solid #cec7b9;
    border-radius:0;
    background:transparent;
    color:var(--ink);
    transition:border-color .3s,background .3s
}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus {
    border-color:var(--olive);
    background:#f5f2eb
}
.contact-form textarea {
    resize:vertical;
    min-height:125px
}
.contact-form .form-wide,.contact-form .consent {
    grid-column:1/-1
}
.contact-form .consent label {
    display:flex;
    gap:10px;
    align-items:start;
    line-height:1.6;
    color:var(--muted)
}
.contact-form .consent input {
    width:16px;
    height:16px;
    flex-shrink:0;
    accent-color:var(--olive)
}
.honeypot {
    position:absolute;
    left:-10000px;
    height:1px;
    overflow:hidden
}
.success,.error {
    padding:15px;
    font-size:.85rem;
    margin:24px 0
}
.success {
    background:#e7ede0;
    color:#3a4d30
}
.error {
    background:#f3e4de;
    color:#8b3929
}
.error ul {
    padding-left:20px
}
.warning {
    color:#8b3929
}
/* Content remains visible if scripts are disabled or animation support is absent. */
.reveal {
    opacity:1
}
.motion-ready .reveal {
    opacity:0;
    transform:translateY(34px);
    transition:opacity .9s var(--ease),transform .9s var(--ease)
}
.motion-ready .reveal.visible {
    opacity:1;
    transform:none
}
.motion-ready .services-grid .reveal:nth-child(2),.motion-ready .steps .reveal:nth-child(2) {
    transition-delay:70ms
}
.motion-ready .services-grid .reveal:nth-child(3),.motion-ready .steps .reveal:nth-child(3) {
    transition-delay:140ms
}
.motion-ready .services-grid .reveal:nth-child(4),.motion-ready .steps .reveal:nth-child(4) {
    transition-delay:210ms
}
.motion-ready .services-grid .reveal:nth-child(5),.motion-ready .steps .reveal:nth-child(5) {
    transition-delay:280ms
}
.motion-ready .services-grid .reveal:nth-child(6) {
    transition-delay:350ms
}
.motion-ready .hero-image {
    animation:hero-drift 16s ease-in-out infinite alternate
}
.motion-ready .hero-text>* {
    animation:hero-enter 1.2s var(--ease) backwards
}
.motion-ready .hero-text h1 {
    animation-delay:.1s
}
.motion-ready .hero-text p {
    animation-delay:.2s
}
.motion-ready .hero-text .pill {
    animation-delay:.3s
}



@keyframes hero-drift {
    from {
        transform:scale(1.015)
    }
    to {
        transform:scale(1.09) translate(-.5%,.5%)
    }
}
@keyframes hero-enter {
    from {
        opacity:0;
        transform:translateY(24px)
    }
    to {
        opacity:1;
        transform:none
    }
}
@media(hover:hover) and (prefers-reduced-motion:no-preference) {
    .motion-ready .service-tile.visible:hover {
        transform:translateY(-9px)
    }
}
@media(min-width:1000px) and (prefers-reduced-motion:no-preference) {
    @supports(animation-timeline:view()) {
        .motion-ready .photo-frame img,.motion-ready .about-panorama img {
            animation:photo-travel linear both;
            animation-timeline:view();
            animation-range:entry 0% exit 100%
        }
        @keyframes photo-travel {
            from {
                transform:scale(1.12) translateY(-2%)
            }
            to {
                transform:scale(1.12) translateY(2%)
            }
        }
    }
}
@media(max-width:1100px) {
    .header {
        padding:0 3vw;
        gap:15px
    }
    .header nav {
        gap:15px;
        font-size:.69rem
    }
    .header>.pill {
        padding:10px 17px;
        gap:12px
    }
    .services-grid {
        grid-template-columns:repeat(3,minmax(0,1fr));
        gap:20px
    }
    .tile-image {
        height:280px
    }
    .section {
        padding-left:5vw;
        padding-right:5vw
    }
    .collection-grid .tile-image {
        height:420px
    }
    .detail-photo {
        height:530px
    }
    .contact-panel {
        padding:25px
    }
    .moments {
        gap:30px
    }
}
@media(max-width:760px) {
    h1 {
        font-size:clamp(2.35rem,8vw,4.4rem)
    }
    html {
        scroll-padding-top:90px
    }
    .header {
        height:74px;
        padding:0 20px
    }
    .brand {
        font-size:1.8rem
    }
    .brand small {
        font-size:6px
    }
    .header>.pill {
        display:none
    }
    .js .menu-toggle {
        display:flex;
        align-items:center;
        gap:9px;
        background:transparent;
        border:1px solid var(--line);
        padding:8px 12px;
        border-radius:30px;
        font-size:.75rem;
        color:var(--ink)
    }
    .menu-lines,.menu-lines:after {
        display:block;
        width:14px;
        height:1px;
        background:var(--ink);
        transition:transform .3s
    }
    .menu-lines:after {
        content:'';
        transform:translateY(5px)
    }
    .menu-toggle[aria-expanded=true] .menu-lines {
        transform:rotate(45deg)
    }
    .menu-toggle[aria-expanded=true] .menu-lines:after {
        transform:rotate(-90deg)
    }
    .header nav {
        display:flex;
        position:absolute;
        top:74px;
        left:0;
        right:0;
        background:var(--ivory);
        padding:20px 26px 30px;
        flex-direction:column;
        gap:5px;
        font-size:1rem;
        border-bottom:1px solid var(--line)
    }
    .header nav {
        visibility:hidden;
        opacity:0;
        transform:translateY(-10px);
        transition:opacity .3s,transform .3s,visibility .3s;
        pointer-events:none
    }
    .header nav.open {
        visibility:visible;
        opacity:1;
        transform:none;
        pointer-events:auto
    }
    .header nav a {
        align-self:flex-start
    }
    .hero {
        min-height:610px;
        height:82svh;
        max-height:820px
    }
    .hero-image {
        object-position:60% center
    }
    .hero-shade {
        background:linear-gradient(90deg,#161911b8,#17191445),linear-gradient(0deg,#17191466,transparent)
    }
    .hero-text {
        padding:80px 0 120px;
        margin:0 7vw
    }
    .hero-text h1 {
        font-size:clamp(2.7rem,8.5vw,4.4rem)
    }
    .hero-text p {
        font-size:.85rem;
        max-width:350px
    }
    .hero-bottom {
        left:7vw;
        right:7vw;
        flex-wrap:wrap;
        gap:12px
    }
    .hero-bottom>span {
        display:none
    }

    .section {
        padding:60px 22px
    }
    .about-grid,.story-band,.about-story,.detail,.faqs,.faq-page,.contact-page {
        grid-template-columns:1fr;
        gap:45px
    }
    .photo-collage {
        max-width:480px;
        width:100%;
        margin:auto;
        padding-right:50px
    }
    .photo-frame {
        height:360px
    }
    .collage-inset {
        height:200px;
        top:100px
    }
    .intro .botanical {
        font-size:80px;
        top:-35px;
        right:10px
    }
    .intro h2 {
        margin-top:15px
    }
    .services-section {
        padding-top:10px;
        padding-bottom:10px
    }
    .services-grid {
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:18px 10px
    }
    .tile-image {
        height:230px
    }
    .tile-copy {
        padding:18px 6px
    }
    .tile-copy h3 {
        font-size:.8rem
    }
    .tile-arrow {
        width:32px;
        height:32px;
        right:10px;
        bottom:10px;
        opacity:1;
        transform:none
    }
    .steps {
        grid-template-columns:1fr;
        text-align:left;
        gap:0;
        padding-left:5px
    }
    .steps>div {
        padding:0 0 30px 90px;
        min-height:110px
    }
    .step-num {
        position:absolute;
        left:0;
        top:0;
        width:57px;
        height:57px;
        font-size:1.4rem
    }
    .steps h3 {
        margin-top:4px
    }
    .steps p {
        margin:0
    }
    .steps>div:not(:last-child):after {
        content:'';
        left:28px;
        top:65px;
        bottom:10px;
        width:1px;
        background:var(--line);
        right:auto
    }
    .concept {
        grid-template-columns:1fr;
        gap:6px;
        padding:10px 15px
    }
    .concept-photo {
        min-height:440px
    }
    .concept-photo>div {
        left:25px;
        bottom:30px
    }
    .concept-side {
        height:400px
    }
    .concept-small img {
        max-height:190px
    }
    .faqs {
        gap:30px
    }
    .quote {
        max-width:420px;
        width:100%;
        margin:0 auto
    }
    .closing {
        padding:60px 22px
    }
    .footer {
        padding:45px 22px 25px;
        grid-template-columns:1fr;
        gap:25px
    }
    .footer nav {
        gap:10px
    }
    .footer-note {
        flex-wrap:wrap;
        font-size:.65rem;
        gap:15px
    }
    .footer-note>span {
        display:none
    }
    .heading-row {
        grid-template-columns:1fr;
        gap:15px;
        margin-bottom:30px
    }
    .heading-row p {
        max-width:100%
    }
    .editorial-heading {
        padding-bottom:20px
    }
    .section-index {
        font-size:.57rem;
        letter-spacing:.1em
    }
    .collection {
        padding-top:0
    }
    .collection-grid {
        gap:35px 15px
    }
    .collection-grid .service-tile:nth-child(even) {
        margin-top:45px
    }
    .collection-grid .tile-image {
        height:280px;
        border-radius:90px 0 0 0
    }
    .collection-grid .service-tile:nth-child(even) .tile-image {
        border-radius:0 0 90px 0
    }
    .collection-grid .tile-copy {
        display:block;
        padding:14px 0
    }
    .collection-grid .tile-copy h3 {
        font-size:1.4rem;
        margin:5px 0
    }
    .collection-grid .tile-link {
        font-size:.65rem
    }
    .experience-note {
        padding-top:10px
    }
    .detail {
        padding-top:35px;
        gap:30px
    }
    .breadcrumb {
        margin-bottom:30px
    }
    .detail h1 {
        font-size:clamp(2.6rem,9vw,3.5rem)
    }
    .detail-photo {
        height:480px;
        max-width:500px;
        margin:auto
    }
    .detail-visual {
        width:100%;
        max-width:500px;
        margin:auto
    }
    .image-seal {
        right:0;
        width:125px;
        height:125px;
        font-size:1rem
    }
    .moments-section {
        padding-top:15px
    }
    .moments {
        grid-template-columns:1fr;
        gap:25px;
        margin-top:30px
    }
    .moments article {
        display:grid;
        grid-template-columns:50px 1fr;
        gap:0 20px;
        border-bottom:1px solid var(--line);
        padding-bottom:25px
    }
    .moment-number {
        grid-row:1/3
    }
    .moments h2 {
        margin:0;
        font-size:1.6rem
    }
    .moments p {
        grid-column:2;
        margin-bottom:0
    }
    .story-band>img {
        height:360px;
        border-radius:0 0 100px 0
    }
    .about-page {
        padding-bottom:0
    }
    .about-title {
        margin-bottom:30px
    }
    .about-panorama {
        height:360px
    }
    .about-panorama img {
        object-position:60% center
    }
    .about-story {
        gap:10px
    }
    .about-story .botanical {
        display:none
    }
    .faq-intro {
        position:static
    }
    .faq-intro img {
        display:none
    }
    .faq-page {
        gap:25px
    }
    .faq-help {
        padding:25px
    }
    .contact-page {
        padding-top:40px;
        gap:30px
    }
    .contact-photo {
        display:none
    }
    .contact-panel {
        padding:25px 20px
    }
    .contact-panel h2 {
        font-size:2.3rem
    }
    .contact-form {
        grid-template-columns:1fr
    }
    .contact-form .form-wide,.contact-form .consent {
        grid-column:auto
    }
    .contact-form .pill {
        width:100%
    }
}
@media(max-width:390px) {
    .hero-text h1 {
        font-size:2.5rem
    }
    .tile-image {
        height:195px
    }
    .collection-grid {
        grid-template-columns:1fr
    }
    .collection-grid .service-tile:nth-child(even) {
        margin-top:0
    }
    .collection-grid .tile-image {
        height:370px
    }
    .detail-photo {
        height:400px
    }
}
@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior:auto
    }
    *,*:before,*:after {
        animation:none!important;
        transition:none!important
    }
    .motion-ready .reveal {
        opacity:1;
        transform:none
    }
    .service-tile:hover,.pill:hover {
        transform:none
    }

}
.header-sentinel {
    position:absolute;
    top:0;
    left:0;
    width:1px;
    height:1px;
    pointer-events:none
}

.hero-video {
    object-fit: cover;
    object-position: center 58%;
}
@media(prefers-reduced-motion:reduce) {
    .hero-video { visibility: hidden; }
}

.contact-location { display:grid; grid-template-columns:1fr 1.2fr;gap:8%;align-items:center;padding-top:10px; }
.contact-location address { font-style:normal;color:var(--muted);white-space:pre-line; }
.contact-location iframe { width:100%;height:380px;border:0;border-radius:120px 0 0 0;background:var(--soft); }
.map-placeholder { min-height:340px;display:grid;place-content:center;text-align:center;background:var(--soft);border-radius:120px 0 0 0; }
.map-placeholder>span { font:3rem Georgia,serif;color:var(--olive); }
@media(max-width:760px) { .contact-location { grid-template-columns:1fr;gap:25px; } .contact-location iframe { height:320px;border-radius:70px 0 0 0; } }

/* Error pages stand alone: they do not depend on database content or route SEO. */
.error-page { min-height:100svh;display:flex;flex-direction:column; }
.error-header { display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px 6vw; }
.error-header .text-link { margin:0; }
.not-found { display:grid;grid-template-columns:1.15fr 1fr;align-items:center;gap:8%;width:100%;max-width:1360px;margin:auto;padding:32px 6vw 65px;flex:1; }
.error-copy h1 { font-size:clamp(2.8rem,4.5vw,5rem);line-height:1.13;margin:25px 0; }
.error-copy>p { max-width:420px;font-size:.93rem; }
.error-actions { display:flex;align-items:center;gap:26px;flex-wrap:wrap;margin-top:32px; }
.error-actions .text-link { margin:0; }
.error-note { display:flex;gap:20px;align-items:center;border-top:1px solid var(--line);margin-top:55px;padding-top:24px;font-size:.71rem;color:var(--muted); }
.error-note>span:first-child { font:italic 2.2rem Georgia,serif;color:var(--gold); }
.error-art { position:relative;isolation:isolate;overflow:hidden;height:560px;border-radius:240px 240px 8px 8px;background:var(--soft); }
.error-art>img { width:100%;height:100%;object-position:48% center; }
.error-art:after { content:'';position:absolute;inset:0;background:linear-gradient(180deg,#24271c22,transparent 40%,#24271cbb);z-index:0; }
.error-number { position:absolute;top:50px;left:50%;transform:translateX(-50%);font:italic clamp(7rem,11vw,11rem)/1 Georgia,serif;letter-spacing:-.08em;color:#fcf7e9eb;z-index:1; }
.error-art-caption { position:absolute;bottom:35px;left:35px;right:25px;z-index:1; }
.error-art-caption .eyebrow { color:#eadfc9; }
.error-art-caption p { font:2.1rem/1.15 Georgia,serif;letter-spacing:-.04em;color:#faf5e9;margin:15px 0 0; }
.error-footer { padding:20px 6vw;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;font-size:.68rem;letter-spacing:.06em;color:var(--muted); }
@media(prefers-reduced-motion:no-preference) {
    .error-copy { animation:hero-enter .9s var(--ease) backwards; }
    .error-art { animation:hero-enter 1.2s .12s var(--ease) backwards; }
    .error-art>img { transition:transform 1.4s var(--ease); }
    .error-art:hover>img { transform:scale(1.04); }
}
@media(max-width:760px) {
    .error-header { padding:23px 22px; }
    .error-header .text-link { font-size:.72rem;gap:12px; }
    .not-found { grid-template-columns:1fr;gap:35px;padding:35px 22px 45px; }
    .error-copy h1 { font-size:clamp(2.5rem,7.5vw,3.6rem); }
    .error-copy>p { max-width:460px; }
    .error-actions { gap:20px; }
    .error-note { margin-top:30px;padding-top:20px; }
    .error-art { height:360px;border-radius:180px 180px 5px 5px; }
    .error-number { font-size:8.5rem;top:35px; }
    .error-art-caption { bottom:25px;left:28px; }
    .error-art-caption p { font-size:1.8rem; }
    .error-footer { padding:20px 22px;letter-spacing:0; }
}

h1,h2,.preserve-lines { white-space:pre-line; }
.header .nav-item { display:flex;align-items:center;position:relative;gap:3px; }
.header .submenu-toggle { display:grid;place-items:center;border:0;background:none;color:inherit;padding:8px 2px;cursor:pointer;font-size:.85rem; }
.header .submenu { position:absolute;top:100%;left:-20px;min-width:245px;background:#fdfcf9;border:1px solid var(--line);padding:14px 18px;box-shadow:0 18px 35px #302e2812;display:grid;gap:5px;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .25s,transform .25s,visibility .25s; }
.header .submenu a { display:flex;justify-content:space-between;align-items:center;gap:25px;padding:9px 0;font-size:.78rem; }
.header .nav-item.submenu-open>.submenu { opacity:1;visibility:visible;transform:none; }
.header .submenu-toggle[aria-expanded=true] { transform:rotate(180deg); }
@media(min-width:761px) {
    html:not(.js) .header .nav-item:hover>.submenu,html:not(.js) .header .nav-item:focus-within>.submenu { opacity:1;visibility:visible;transform:none; }
}
@media(max-width:760px) {
    .header .nav-item { width:100%;flex-wrap:wrap;justify-content:space-between; }
    .header .submenu { position:static;width:100%;min-width:0;padding:0 0 0 18px;border:0;border-left:1px solid var(--line);box-shadow:none;display:none; }
    .header .nav-item.submenu-open>.submenu { display:grid; }
    .header .submenu a { font-size:.85rem; }
    .hero-text h1 { font-size:clamp(2.5rem,7.8vw,4.4rem); }
}

@media(max-width:760px) { .header #site-nav { max-height:calc(100svh - 74px);overflow-y:auto; } }

/* Legal / KVKK / Cookies */
.legal-page { max-width: 920px; margin: 0 auto; padding: 60px 6vw 90px; }
.legal-header { border-bottom: 1px solid var(--line); padding-bottom: 30px; margin-bottom: 40px; }
.legal-header h1 { font-size: clamp(2.2rem, 3.8vw, 3.4rem); margin: 16px 0 12px; }
.legal-meta { font-size: 0.82rem; color: var(--olive); letter-spacing: 0.04em; }
.legal-breadcrumb { display: inline-flex; align-items: center; gap: 8px; font-size: 0.82rem; color: var(--muted); margin-bottom: 14px; }
.legal-breadcrumb:hover { color: var(--ink); }
.legal-content h2 { font-size: 1.45rem; margin: 38px 0 16px; padding-top: 24px; border-top: 1px solid var(--soft); color: var(--ink); }
.legal-content h3 { font-size: 1.15rem; margin: 22px 0 10px; color: var(--ink); }
.legal-content p, .legal-content li { font-size: 0.94rem; line-height: 1.85; color: #43403a; }
.legal-content ul, .legal-content ol { padding-left: 24px; margin: 14px 0 22px; }
.legal-content li { margin-bottom: 8px; }
.legal-content table { width: 100%; border-collapse: collapse; margin: 24px 0 30px; font-size: 0.88rem; }
.legal-content th, .legal-content td { padding: 12px 14px; border: 1px solid var(--line); text-align: left; vertical-align: top; }
.legal-content th { background: var(--soft); font-weight: 600; color: var(--ink); }
.legal-content td { background: #fff; color: #43403a; }
.legal-box { background: var(--soft); padding: 22px 26px; border-radius: 6px; border-left: 3px solid var(--olive); margin: 26px 0; }
.legal-box p { margin: 0; color: var(--ink); font-size: 0.92rem; line-height: 1.7; }
.table-responsive { overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 20px 0; }
