:root {
  --ink: #251d19;
  --cream: #f5f0e9;
  --paper: #fffdf9;
  --rose: #9b5d4b;
  --soft-rose: #dbc0b6;
  --line: rgba(37, 29, 25, 0.16);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--cream);
  color: var(--ink);
  font-family: Arial, Helvetica, sans-serif;
}
a { color: inherit; text-decoration: none; }
button { font: inherit; }

.site-header {
  position: absolute;
  z-index: 20;
  top: 0;
  left: 0;
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  padding: 28px 5vw;
}
.brand { display: flex; flex-direction: column; letter-spacing: .22em; line-height: 1; }
.brand span { font-family: Georgia, serif; font-size: 24px; letter-spacing: .24em; }
.brand small { margin-top: 7px; font-size: 8px; letter-spacing: .35em; }
.nav-links { display: flex; align-items: center; gap: 26px; font-size: 13px; }
.nav-links > a:not(.nav-cta) { position: relative; }
.nav-links > a:not(.nav-cta)::after { position: absolute; bottom: -5px; left: 0; width: 0; height: 1px; background: currentColor; content: ""; transition: width .25s; }
.nav-links > a:hover::after { width: 100%; }
.nav-cta { border: 1px solid var(--ink); padding: 13px 20px; transition: background .2s, color .2s; }
.nav-cta:hover { background: var(--ink); color: var(--paper); }
.menu-toggle { display: none; border: 0; background: transparent; }
.header-on-dark { color: #fff8ef; }
.header-on-dark .nav-cta { border-color: rgba(255,248,239,.58); }
.header-on-dark .nav-cta:hover { background: #fff8ef; color: #1c1511; }
.nav-login { display: inline-flex; align-items: center; gap: 7px; }
.nav-login svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-width: 1.45; }

.hero {
  position: relative;
  min-height: 860px;
  display: grid;
  grid-template-columns: 54% 46%;
  overflow: hidden;
  background: #1b1511;
  color: #fff8ef;
}
.hero-glow { position: absolute; top: -160px; left: 28%; width: 520px; height: 520px; border-radius: 50%; background: rgba(158,100,76,.13); filter: blur(12px); }
.hero-copy { position: relative; z-index: 2; display: flex; flex-direction: column; justify-content: center; padding: 145px 6vw 72px 8vw; }
.hero-copy::after { position: absolute; right: 3vw; bottom: 0; width: 1px; height: 77%; background: linear-gradient(transparent, rgba(226,189,158,.25), transparent); content: ""; }
.hero-eyebrow { display: flex; align-items: center; gap: 15px; margin: 0 0 28px; color: #d7ae8b; font-size: 10px; font-weight: 700; letter-spacing: .28em; text-transform: uppercase; }
.hero-eyebrow span { width: 42px; height: 1px; background: #b88966; }
.eyebrow { margin: 0 0 24px; color: var(--rose); font-size: 11px; font-weight: 700; letter-spacing: .23em; text-transform: uppercase; }
h1, h2 { margin: 0; font-family: Georgia, "Times New Roman", serif; font-weight: 400; line-height: .98; letter-spacing: -.045em; }
h1 { max-width: 760px; font-size: clamp(60px, 6.2vw, 100px); }
h1 em { color: #d5a78d; font-weight: 400; }
h2 em { color: var(--rose); font-weight: 400; }
.hero-lead { max-width: 560px; margin: 32px 0 0; color: rgba(255,248,239,.68); font-family: Georgia, serif; font-size: 18px; line-height: 1.75; }
.hero-actions { display: flex; align-items: center; gap: 30px; margin-top: 38px; }
.button { display: inline-flex; min-height: 54px; align-items: center; justify-content: space-between; gap: 32px; padding: 0 22px; font-size: 13px; font-weight: 700; letter-spacing: .04em; }
.button-dark { background: var(--ink); color: white; }
.button-dark:hover span { transform: translate(2px, -2px); }
.button span { transition: transform .2s; }
.button-gold { border: 1px solid #c99c78; background: #c99c78; color: #1b1511; transition: background .25s, color .25s; }
.button-gold:hover { background: transparent; color: #fff8ef; }
.text-link { border-bottom: 1px solid var(--ink); padding: 10px 0; font-size: 13px; }
.text-link span { margin-left: 8px; }
.text-link-light { border-color: rgba(255,248,239,.38); color: rgba(255,248,239,.8); }
.hero-proof { display: flex; gap: 36px; margin-top: 68px; }
.hero-proof div { display: flex; min-width: 96px; flex-direction: column; gap: 7px; border-left: 1px solid rgba(215,174,139,.38); padding-left: 14px; }
.hero-proof strong { color: #fff8ef; font-family: Georgia, serif; font-size: 17px; font-weight: 400; letter-spacing: .14em; }
.hero-proof span { color: rgba(255,248,239,.48); font-size: 9px; letter-spacing: .12em; text-transform: uppercase; }

.hero-visual { position: relative; min-width: 0; overflow: hidden; background: #a78372; }
.hero-main-image { width: 100%; height: 100%; object-fit: cover; filter: saturate(.78) sepia(.08); }
.hero-main-screenshot { object-position: 51% 50%; transform: scale(2.45); transform-origin: 48% 100%; }
.hero-image-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(27,21,17,.28), transparent 28%), linear-gradient(0deg, rgba(27,21,17,.35), transparent 42%); }
.hero-signature { position: absolute; top: 145px; right: 3vw; display: flex; width: 110px; height: 110px; align-items: center; justify-content: center; gap: 9px; border: 1px solid rgba(255,248,239,.55); border-radius: 50%; background: rgba(39,27,21,.16); color: white; backdrop-filter: blur(6px); transform: rotate(7deg); }
.hero-signature > span { font: italic 38px Georgia, serif; }
.hero-signature p { margin: 0; font: 10px/1.45 Arial, sans-serif; letter-spacing: .13em; text-transform: uppercase; }
.hero-inset { position: absolute; left: -68px; bottom: 48px; width: 215px; margin: 0; padding: 9px 9px 11px; background: #f0e3d7; box-shadow: 0 24px 55px rgba(0,0,0,.3); transform: rotate(-2deg); }
.hero-inset-photo { height: 190px; overflow: hidden; }
.hero-inset img { display: block; width: 100%; height: 100%; object-fit: cover; filter: saturate(.75) sepia(.05); }
.hero-inset-screenshot { object-position: 15% 50%; transform: scale(2.5); transform-origin: 15% 100%; }
.hero-inset figcaption { padding-top: 9px; color: #4c382f; font: italic 12px Georgia, serif; text-align: center; }
.hero-vertical-note { position: absolute; right: 19px; bottom: 45px; margin: 0; color: rgba(255,255,255,.72); font-size: 8px; letter-spacing: .18em; text-transform: uppercase; writing-mode: vertical-rl; }

.trust-strip { display: flex; min-height: 78px; align-items: center; justify-content: center; gap: 26px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--paper); font-family: Georgia, serif; font-size: 13px; font-style: italic; }
.trust-strip > span { display: inline-flex; align-items: center; gap: 26px; }
.diamond { color: var(--soft-rose); font-size: 8px; }

.section { padding: 110px 8vw; }
.services { background: var(--paper); }
.section-heading { display: grid; grid-template-columns: 1fr 1.35fr 1fr; gap: 6vw; align-items: end; }
.section-heading .eyebrow { align-self: start; }
.section-heading h2 { font-size: clamp(44px, 5vw, 74px); }
.section-heading > p:last-child { margin: 0; color: #6b605a; font-family: Georgia, serif; font-size: 15px; line-height: 1.8; }
.service-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin-top: 80px; background: var(--line); border: 1px solid var(--line); }
.service-card { min-height: 330px; padding: 35px; background: var(--paper); }
.service-card > span { color: var(--rose); font-family: Georgia, serif; font-size: 13px; font-style: italic; }
.service-card h3 { margin: 75px 0 18px; font-family: Georgia, serif; font-size: 26px; font-weight: 400; }
.service-card p { min-height: 70px; color: #6d625d; font-size: 13px; line-height: 1.75; }
.service-card a { display: flex; justify-content: space-between; margin-top: 28px; border-top: 1px solid var(--line); padding-top: 16px; color: var(--rose); font-size: 12px; font-weight: 700; }
.locations-preview { padding: 23px 5vw; background: var(--rose); color: white; text-align: center; font-family: Georgia, serif; font-size: 12px; letter-spacing: .05em; }

.portfolio-section { background: #ece3dc; }
.portfolio-heading { display: grid; grid-template-columns: 1.45fr .65fr; gap: 12vw; align-items: end; }
.portfolio-heading h2, .location-intro h2, .process-title h2, .booking-copy h2, .faq-section h2 { font-size: clamp(48px, 5vw, 76px); }
.portfolio-heading > p { margin: 0 0 6px; color: #685c56; font-family: Georgia, serif; font-size: 15px; line-height: 1.8; }
.portfolio-grid { display: grid; grid-template-columns: 1.05fr .8fr 1.05fr; gap: 18px; align-items: start; margin-top: 70px; }
.portfolio-shot { margin: 0; }
.portfolio-shot:nth-child(3n+2) { margin-top: 80px; }
.image-crop { height: 460px; overflow: hidden; background: #c7b3aa; }
.portfolio-shot img { display: block; width: 100%; height: 100%; object-fit: cover; filter: saturate(.82) sepia(.03); }
.portfolio-shot figcaption { display: flex; justify-content: space-between; gap: 15px; padding: 14px 0; border-bottom: 1px solid var(--line); color: #6f625c; font-family: Georgia, serif; font-size: 12px; font-style: italic; }
.portfolio-shot figcaption span { color: var(--ink); font-style: normal; }
.portfolio-shot.is-screenshot img { transform: scale(2.7); }
.portfolio-shot.is-screenshot.shot-one img { transform-origin: 12% 100%; }
.portfolio-shot.is-screenshot.shot-two img { transform-origin: 51% 100%; }
.portfolio-shot.is-screenshot.shot-three img { transform-origin: 88% 100%; }
.instagram-link { display: flex; align-items: center; justify-content: space-between; margin-top: 45px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 22px 0; font-family: Georgia, serif; font-size: 15px; }
.instagram-link span { color: var(--rose); font-family: Arial, sans-serif; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }

.location-section { display: grid; grid-template-columns: .85fr 1.4fr; gap: 10vw; background: var(--paper); }
.location-intro { position: sticky; top: 50px; align-self: start; }
.location-list { border-top: 1px solid var(--line); }
.location-list article { display: grid; grid-template-columns: 55px 1fr 120px; gap: 24px; align-items: start; border-bottom: 1px solid var(--line); padding: 34px 0; }
.location-list article > span { color: var(--rose); font-family: Georgia, serif; font-size: 13px; font-style: italic; }
.location-list h3 { margin: 0 0 12px; font-family: Georgia, serif; font-size: 25px; font-weight: 400; }
.location-list p { max-width: 570px; margin: 0; color: #716661; font-size: 13px; line-height: 1.75; }
.location-list a { justify-self: end; border-bottom: 1px solid var(--rose); padding: 5px 0 8px; color: var(--rose); font-size: 11px; font-weight: 700; text-transform: uppercase; }

.process-section { display: grid; grid-template-columns: .8fr 1.2fr; gap: 11vw; padding: 110px 8vw; background: var(--ink); color: white; }
.process-section .eyebrow { color: #dcae9f; }
.process-title h2 em { color: #dcae9f; }
.process-section ol { margin: 0; padding: 0; border-top: 1px solid rgba(255,255,255,.18); list-style: none; }
.process-section li { display: grid; grid-template-columns: 65px 1fr; border-bottom: 1px solid rgba(255,255,255,.18); padding: 28px 0; }
.process-section li > span { color: #dcae9f; font-family: Georgia, serif; font-size: 12px; }
.process-section strong { font-family: Georgia, serif; font-size: 22px; font-weight: 400; }
.process-section li p { max-width: 480px; margin: 10px 0 0; color: #bdb4af; font-size: 13px; line-height: 1.7; }

.booking-section { display: grid; grid-template-columns: .8fr 1.1fr; gap: 12vw; padding: 115px 8vw; background: #b78978; color: #241d1a; }
.booking-copy .eyebrow { color: #4c342d; }
.booking-copy h2 em { color: #fff6f0; }
.booking-copy > p { max-width: 470px; margin: 32px 0 0; color: #4f3932; font-family: Georgia, serif; font-size: 15px; line-height: 1.8; }
.contact-detail { display: flex; flex-direction: column; gap: 8px; margin-top: 55px; font-size: 11px; text-transform: uppercase; }
.contact-detail a { width: max-content; border-bottom: 1px solid var(--ink); padding-bottom: 7px; font-family: Georgia, serif; font-size: 18px; text-transform: none; }
.booking-form { display: grid; grid-template-columns: 1fr 1fr; gap: 25px 18px; align-self: center; padding: 42px; background: rgba(255,253,249,.93); box-shadow: 0 28px 70px rgba(55,34,26,.14); }
.booking-form label { color: #4e413b; font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.booking-form input, .booking-form select { width: 100%; margin-top: 9px; border: 0; border-bottom: 1px solid #b9ada7; border-radius: 0; background: transparent; padding: 12px 2px; color: var(--ink); font: 15px Georgia, serif; outline: 0; }
.booking-form input:focus, .booking-form select:focus { border-bottom-color: var(--rose); }
.booking-form button { grid-column: 1 / -1; border: 0; cursor: pointer; }
.button-light { background: var(--ink); color: white; }
.booking-form > p { grid-column: 1 / -1; margin: -10px 0 0; color: #81736d; font-size: 10px; line-height: 1.5; }

.faq-section { display: grid; grid-template-columns: .65fr 1fr; gap: 12vw; background: var(--paper); }
.faq-list { border-top: 1px solid var(--line); }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 25px 0; cursor: pointer; font-family: Georgia, serif; font-size: 17px; list-style: none; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary span { color: var(--rose); font-family: Arial, sans-serif; font-size: 18px; font-weight: 300; }
.faq-list details[open] summary span { transform: rotate(45deg); }
.faq-list details p { margin: -5px 50px 25px 0; color: #6c605a; font-size: 13px; line-height: 1.75; }

footer { display: grid; grid-template-columns: 1fr 1fr auto; gap: 30px; align-items: center; padding: 65px 8vw 35px; background: #d8c2b8; }
.footer-brand { justify-self: start; }
footer > p { margin: 0; font-family: Georgia, serif; font-size: 18px; font-style: italic; text-align: center; }
footer > div { display: flex; gap: 18px; font-size: 11px; font-weight: 700; text-transform: uppercase; }
footer > small { grid-column: 1 / -1; margin-top: 45px; border-top: 1px solid var(--line); padding-top: 22px; color: #675a54; font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }
.floating-wa { position: fixed; z-index: 50; right: 26px; bottom: 24px; display: flex; min-height: 50px; align-items: center; gap: 10px; border: 1px solid rgba(255,255,255,.25); border-radius: 999px; background: #176b42; color: white; padding: 14px 21px; box-shadow: 0 14px 38px rgba(11,59,35,.36); font-size: 12px; font-weight: 700; letter-spacing: .01em; transition: transform .2s, background .2s; }
.floating-wa:hover { background: #0f7a46; transform: translateY(-2px); }
.floating-wa span { color: #8df0ad; font-size: 14px; }

/* Content Studio */
.admin-shell { min-height: 100vh; display: grid; grid-template-columns: 250px 1fr; background: #f3eee8; color: #281f1b; }
.admin-sidebar { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; padding: 30px 22px; background: #211916; color: #f8eee7; }
.admin-brand { display: flex; align-items: center; gap: 12px; border-bottom: 1px solid rgba(255,255,255,.13); padding-bottom: 28px; }
.admin-brand > span { display: grid; width: 42px; height: 42px; place-items: center; border: 1px solid #c79775; border-radius: 50%; color: #d6aa89; font: italic 24px Georgia, serif; }
.admin-brand div { display: flex; flex-direction: column; gap: 5px; }
.admin-brand strong { font: 17px Georgia, serif; letter-spacing: .2em; }
.admin-brand small { color: rgba(255,255,255,.45); font-size: 7px; letter-spacing: .25em; }
.admin-sidebar nav { display: grid; gap: 8px; margin-top: 45px; }
.admin-sidebar nav button, .admin-sidebar nav a { display: flex; align-items: center; gap: 14px; border: 0; border-left: 2px solid transparent; background: transparent; color: rgba(255,255,255,.55); padding: 15px 12px; text-align: left; cursor: pointer; }
.admin-sidebar nav button span, .admin-sidebar nav a span { color: #a97b60; font: italic 11px Georgia, serif; }
.admin-sidebar nav button.active, .admin-sidebar nav a.active { border-left-color: #d4a27e; background: rgba(255,255,255,.06); color: white; }
.admin-account { display: flex; flex-direction: column; gap: 5px; margin-top: auto; border-top: 1px solid rgba(255,255,255,.13); padding: 22px 8px 0; }
.admin-account span { color: rgba(255,255,255,.4); font-size: 8px; letter-spacing: .15em; text-transform: uppercase; }
.admin-account strong { overflow: hidden; font-size: 11px; font-weight: 400; text-overflow: ellipsis; }
.admin-account small { overflow: hidden; color: rgba(255,255,255,.43); font-size: 9px; text-overflow: ellipsis; }
.admin-account form { margin: 0; }
.admin-account button { width: max-content; margin-top: 12px; border: 0; border-bottom: 1px solid rgba(255,255,255,.35); background: transparent; color: #d6aa89; padding: 0 0 3px; font-size: 10px; cursor: pointer; }
.admin-main { min-width: 0; padding: 36px 4vw 70px; }
.admin-topbar { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; border-bottom: 1px solid rgba(40,31,27,.16); padding-bottom: 25px; }
.admin-topbar p, .form-heading p, .list-heading p { margin: 0 0 8px; color: #a06a51; font-size: 9px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }
.admin-topbar h1 { color: #281f1b; font-size: clamp(36px, 4vw, 54px); }
.admin-topbar > a { border: 1px solid rgba(40,31,27,.35); padding: 12px 16px; font-size: 10px; font-weight: 700; text-transform: uppercase; }
.admin-notice { margin: 22px 0 0; border-left: 3px solid; padding: 13px 16px; font-size: 12px; }
.admin-notice.success { border-color: #568068; background: #e4eee7; color: #31513f; }
.admin-notice.error { border-color: #a34c49; background: #f4e4e2; color: #793633; }
.admin-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; margin-top: 30px; }
.admin-stats article { display: flex; min-height: 105px; flex-direction: column; justify-content: space-between; border: 1px solid rgba(40,31,27,.12); background: rgba(255,255,255,.52); padding: 18px; }
.admin-stats span { color: #786a64; font-size: 9px; letter-spacing: .1em; text-transform: uppercase; }
.admin-stats strong { font: 28px Georgia, serif; font-weight: 400; }
.admin-stats article:last-child strong { font-size: 16px; }
.admin-workspace { display: grid; grid-template-columns: minmax(300px, .65fr) minmax(460px, 1.35fr); gap: 28px; align-items: start; margin-top: 28px; }
.admin-form, .admin-list { border: 1px solid rgba(40,31,27,.13); background: #fffdf9; padding: 26px; }
.admin-form { position: sticky; top: 25px; display: grid; gap: 18px; }
.form-heading { margin-bottom: 5px; }
.form-heading h2 { font-size: 29px; }
.admin-form label { display: grid; gap: 8px; color: #6b5b54; font-size: 9px; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.admin-form label small { color: #9c8e88; font-size: 9px; font-weight: 400; letter-spacing: 0; line-height: 1.5; text-transform: none; }
.admin-form input:not([type="checkbox"]), .admin-form textarea { width: 100%; border: 1px solid rgba(40,31,27,.2); border-radius: 0; background: #faf6f1; padding: 12px 13px; color: #281f1b; font: 13px Arial, sans-serif; outline: none; }
.admin-form input[type="file"] { padding: 9px; font-size: 11px; }
.admin-form textarea { resize: vertical; line-height: 1.55; }
.admin-form input:focus, .admin-form textarea:focus { border-color: #9b674e; box-shadow: 0 0 0 2px rgba(155,103,78,.08); }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.checkbox-label { align-content: end; grid-template-columns: auto 1fr !important; align-items: center; justify-content: start; padding-bottom: 12px; }
.checkbox-label input { accent-color: #8b5b45; }
.admin-primary, .admin-cancel { min-height: 46px; border: 0; cursor: pointer; font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.admin-primary { background: #281f1b; color: white; }
.admin-primary:disabled { cursor: wait; opacity: .6; }
.admin-cancel { border: 1px solid rgba(40,31,27,.25); background: transparent; color: #6b5b54; }
.list-heading { display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(40,31,27,.14); padding-bottom: 15px; }
.list-heading p { margin: 0; }
.list-heading span { color: #85766f; font: italic 11px Georgia, serif; }
.portfolio-admin-card { display: grid; grid-template-columns: 112px minmax(150px, 1fr) auto; gap: 18px; align-items: center; border-bottom: 1px solid rgba(40,31,27,.12); padding: 19px 0; }
.portfolio-admin-card > img { width: 112px; height: 100px; object-fit: cover; background: #d8c8bf; }
.portfolio-admin-card h3, .faq-admin-card h3 { margin: 8px 0 5px; font: 19px Georgia, serif; font-weight: 400; }
.portfolio-admin-card p { margin: 0 0 7px; color: #796b64; font-size: 11px; }
.portfolio-admin-card small { color: #9c8f89; font-size: 9px; }
.status-live, .status-hidden { display: inline-block; width: max-content; border-radius: 99px; padding: 4px 8px; font-size: 8px !important; font-style: normal; letter-spacing: .08em; text-transform: uppercase; }
.status-live { background: #e2eee5; color: #3f654c !important; }
.status-hidden { background: #eee9e5; color: #766963 !important; }
.card-actions { display: flex; flex-direction: column; gap: 6px; }
.card-actions form { margin: 0; }
.card-actions button, .card-actions a { display: block; width: 100%; border: 1px solid rgba(40,31,27,.2); background: transparent; padding: 7px 9px; color: #544741; font-size: 8px; text-align: center; cursor: pointer; text-transform: uppercase; }
.card-actions button:hover, .card-actions a:hover { background: #f0e8e2; }
.card-actions button.danger, .card-actions a.danger { border-color: rgba(152,61,55,.25); color: #98443e; }
.faq-admin-card { display: grid; grid-template-columns: 36px minmax(180px, 1fr) auto; gap: 15px; align-items: start; border-bottom: 1px solid rgba(40,31,27,.12); padding: 22px 0; }
.faq-admin-card > span { color: #a06a51; font: italic 12px Georgia, serif; }
.faq-admin-card h3 { margin-top: 10px; }
.faq-admin-card p { margin: 7px 0 0; color: #776963; font-size: 11px; line-height: 1.65; }
.admin-form-intro { margin: -3px 0 4px; color: #786a64; font: 12px/1.65 Georgia, serif; }
.admin-user-card { display: grid; grid-template-columns: 52px minmax(180px, 1fr) auto; gap: 17px; align-items: center; border-bottom: 1px solid rgba(40,31,27,.12); padding: 20px 0; }
.admin-user-card h3 { margin: 8px 0 5px; font: 20px Georgia, serif; font-weight: 400; }
.admin-user-card p { margin: 0 0 6px; color: #6e6059; font-size: 11px; }
.admin-user-card > div > small:last-child { color: #9a8c85; font-size: 9px; }
.admin-avatar { display: grid; width: 48px; height: 48px; place-items: center; border: 1px solid #c89a7c; border-radius: 50%; background: #f3e8df; color: #9a6048; font: italic 22px Georgia, serif; }
.owner-card { background: #faf6f1; margin: 15px -10px 0; padding: 20px 10px; }
.admin-empty { margin: 25px 0 5px; color: #8a7c75; font: italic 13px/1.7 Georgia, serif; }

.admin-settings-form { display: grid; gap: 16px; margin-top: 28px; }
.settings-hero-card { display: grid; grid-template-columns: minmax(220px, 1fr) 190px minmax(240px, .8fr); gap: 24px; align-items: center; border: 1px solid rgba(40,31,27,.13); background: #fffdf9; padding: 25px; }
.settings-hero-card p { margin: 0 0 6px; color: #a06a51; font-size: 9px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.settings-hero-card h2 { font-size: 29px; }
.settings-hero-card > div > span { display: block; max-width: 410px; margin-top: 12px; color: #786b65; font-size: 11px; line-height: 1.6; }
.settings-hero-card > img { width: 190px; height: 150px; object-fit: cover; background: #d8c8bf; }
.settings-hero-card > label, .settings-group label, .settings-option-columns label { display: grid; gap: 8px; color: #6b5b54; font-size: 9px; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.settings-hero-card input[type="file"], .settings-group input:not([type="checkbox"]), .settings-group textarea, .settings-option-columns input, .settings-option-columns textarea { width: 100%; border: 1px solid rgba(40,31,27,.2); border-radius: 0; background: #faf6f1; padding: 12px 13px; color: #281f1b; font: 13px Arial, sans-serif; outline: none; }
.settings-hero-card input[type="file"] { padding: 9px; font-size: 10px; }
.settings-hero-card label small { color: #9a8e87; font-size: 9px; font-weight: 400; letter-spacing: 0; text-transform: none; }
.settings-toggle { grid-column: 1 / -1; display: flex !important; align-items: center; gap: 12px !important; border-top: 1px solid rgba(40,31,27,.12); padding-top: 18px; cursor: pointer; }
.settings-toggle input { width: 18px; height: 18px; accent-color: #176b42; }
.settings-toggle > span { display: grid; gap: 4px; letter-spacing: 0; text-transform: none; }
.settings-toggle strong { color: #2f5540; font-size: 12px; }
.settings-toggle small { color: #81736d; font-size: 10px; font-weight: 400; }
.settings-group { border: 1px solid rgba(40,31,27,.13); background: #fffdf9; }
.settings-group > summary { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 22px 25px; cursor: pointer; list-style: none; }
.settings-group > summary::-webkit-details-marker { display: none; }
.settings-group > summary span { display: grid; gap: 6px; }
.settings-group > summary strong { font: 22px Georgia, serif; font-weight: 400; }
.settings-group > summary small { color: #857770; font-size: 10px; }
.settings-group > summary b { color: #a06a51; font-size: 21px; font-weight: 300; transition: transform .2s; }
.settings-group[open] > summary b { transform: rotate(45deg); }
.settings-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; border-top: 1px solid rgba(40,31,27,.12); padding: 25px; }
.settings-group textarea { resize: vertical; line-height: 1.55; }
.settings-group input:focus, .settings-group textarea:focus { border-color: #9b674e; box-shadow: 0 0 0 2px rgba(155,103,78,.08); }
.settings-repeat-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; border-top: 1px solid rgba(40,31,27,.12); padding: 25px; }
.settings-repeat-grid article { display: grid; gap: 14px; border: 1px solid rgba(40,31,27,.11); background: #faf6f1; padding: 18px; }
.settings-repeat-grid h3, .settings-option-columns h3 { margin: 0 0 3px; font: 20px Georgia, serif; font-weight: 400; }
.settings-spaced { border-top: 0; padding-top: 0; }
.settings-option-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 25px; border-top: 1px solid rgba(40,31,27,.12); padding: 25px; }
.settings-option-columns > div { display: grid; gap: 14px; }
.settings-savebar { position: sticky; z-index: 5; bottom: 16px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border: 1px solid rgba(40,31,27,.18); background: rgba(255,253,249,.96); padding: 15px 18px; box-shadow: 0 14px 40px rgba(40,31,27,.13); backdrop-filter: blur(10px); }
.settings-savebar span { color: #776a64; font-size: 10px; }
.settings-savebar button { min-width: 220px; padding: 0 22px; }

.login-page { min-height: 100vh; display: grid; place-items: center; overflow: hidden; background: radial-gradient(circle at 75% 20%, rgba(183,137,120,.24), transparent 35%), #1d1613; padding: 40px 20px; }
.login-card { width: min(570px, 100%); border: 1px solid rgba(255,255,255,.14); background: #fffaf5; padding: clamp(34px, 7vw, 66px); box-shadow: 0 35px 90px rgba(0,0,0,.35); }
.login-logo { display: flex; width: max-content; align-items: center; gap: 15px; margin-bottom: 52px; color: #281f1b; }
.login-logo-mark { display: grid; width: 58px; height: 58px; place-items: center; border: 1px solid #b77d60; border-radius: 50%; color: #9f674f; font: italic 31px Georgia, serif; box-shadow: inset 0 0 0 5px #fffaf5, inset 0 0 0 6px rgba(159,103,79,.22); }
.login-logo > span:last-child { display: grid; gap: 6px; }
.login-logo strong { font: 20px Georgia, serif; letter-spacing: .24em; }
.login-logo small { color: #8a7770; font-size: 7px; letter-spacing: .2em; }
.login-card h1 { color: #281f1b; font-size: clamp(42px, 7vw, 65px); line-height: 1; }
.login-card > p:not(.eyebrow) { margin: 25px 0 0; color: #73655f; font: 15px/1.75 Georgia, serif; }
.login-form { display: grid; gap: 18px; margin-top: 30px; }
.login-form label { display: grid; gap: 8px; color: #6b5b54; font-size: 9px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.login-form input { width: 100%; border: 1px solid rgba(40,31,27,.22); background: #fffdf9; padding: 14px; color: #281f1b; font: 14px Arial, sans-serif; outline: 0; }
.login-form input:focus { border-color: #9b674e; box-shadow: 0 0 0 2px rgba(155,103,78,.09); }
.login-button { display: flex; width: 100%; min-height: 56px; align-items: center; justify-content: space-between; margin-top: 18px; border: 0; background: #281f1b; color: white; padding: 0 19px; font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; cursor: pointer; }
.login-button:disabled { cursor: wait; opacity: .65; }
.login-error { margin: -4px 0 0 !important; border-left: 2px solid #9e4d48; background: #f5e6e4; color: #7a3734 !important; padding: 10px 12px; font: 11px/1.5 Arial, sans-serif !important; }
.login-divider { display: flex; align-items: center; gap: 13px; margin-top: 30px; color: #9a8d86; font-size: 8px; letter-spacing: .14em; text-transform: uppercase; }
.login-divider::before, .login-divider::after { flex: 1; height: 1px; background: rgba(40,31,27,.13); content: ""; }
.login-owner-link { display: block; margin-top: 17px; color: #8e5d48; font-size: 10px; text-align: center; text-decoration: underline; text-underline-offset: 4px; }
.login-back { display: block; width: max-content; margin-top: 24px; border-bottom: 1px solid #9c8e87; padding-bottom: 4px; color: #6c5f59; font-size: 10px; }
.login-card > small { display: block; margin-top: 45px; border-top: 1px solid rgba(40,31,27,.13); padding-top: 17px; color: #998c85; font-size: 9px; }

.admin-link-button { display: grid; place-items: center; }
.installer-card { width: min(760px, 100%); }
.install-page { overflow: auto; }
.installer-form fieldset { display: grid; gap: 18px; margin: 6px 0 0; border: 1px solid rgba(40,31,27,.14); padding: 22px; }
.installer-form legend { padding: 0 10px; color: #9b674e; font: italic 16px Georgia, serif; }
.installer-grid { display: grid; grid-template-columns: 1fr 130px; gap: 14px; }
.installer-card .login-error { margin-top: 22px !important; }

@media (max-width: 900px) {
  .site-header { padding: 22px 6vw; }
  .menu-toggle { display: block; position: relative; z-index: 3; color: inherit; cursor: pointer; }
  .nav-links { position: absolute; z-index: 2; top: 0; left: 0; display: none; width: 100%; flex-direction: column; align-items: flex-start; gap: 22px; background: var(--paper); padding: 90px 6vw 30px; box-shadow: 0 20px 30px rgba(0,0,0,.08); }
  .nav-links.open { display: flex; }
  .header-on-dark .nav-links.open { color: var(--ink); }
  .header-on-dark .nav-links.open .nav-cta { border-color: var(--ink); }
  .hero { grid-template-columns: 1fr; }
  .hero-copy { min-height: 700px; padding: 135px 7vw 75px; }
  .hero-copy::after { display: none; }
  .hero-visual { min-height: 650px; }
  .hero-inset { left: 7vw; }
  .section-heading { grid-template-columns: 1fr; }
  .section-heading h2 { max-width: 680px; }
  .service-grid { grid-template-columns: 1fr; }
  .service-card { min-height: auto; }
  .service-card h3 { margin-top: 40px; }
  .trust-strip { flex-wrap: wrap; gap: 14px; padding: 25px; }
  .portfolio-heading, .location-section, .process-section, .booking-section, .faq-section { grid-template-columns: 1fr; }
  .portfolio-heading, .location-section, .process-section, .booking-section, .faq-section { gap: 55px; }
  .location-intro { position: static; }
  .image-crop { height: 380px; }
  .location-list article { grid-template-columns: 45px 1fr; }
  .location-list article > a { grid-column: 2; justify-self: start; }
  footer { grid-template-columns: 1fr; justify-items: start; }
  footer > p { text-align: left; }
  footer > small { grid-column: 1; }
  .admin-shell { grid-template-columns: 1fr; }
  .admin-sidebar { position: static; height: auto; flex-direction: row; align-items: center; padding: 18px 4vw; }
  .admin-brand { border: 0; padding: 0; }
  .admin-sidebar nav { display: flex; margin: 0 0 0 auto; }
  .admin-account { display: none; }
  .admin-workspace { grid-template-columns: 1fr; }
  .admin-form { position: static; }
  .settings-hero-card { grid-template-columns: 1fr 180px; }
  .settings-hero-card > label:not(.settings-toggle) { grid-column: 1 / -1; }
  .settings-repeat-grid { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  h1 { font-size: 56px; }
  .hero-copy { min-height: 690px; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 12px; }
  .hero-proof { gap: 13px; margin-top: 45px; }
  .hero-proof div { min-width: 0; padding-left: 9px; }
  .hero-proof span { font-size: 7px; }
  .hero-visual { min-height: 560px; }
  .hero-main-screenshot { transform: scale(2.25); }
  .hero-inset { bottom: 25px; width: 165px; }
  .hero-inset-photo { height: 140px; }
  .hero-signature { top: 35px; right: 7vw; width: 88px; height: 88px; }
  .hero-vertical-note { display: none; }
  .trust-strip > span:nth-child(even) { display: none; }
  .section { padding: 80px 7vw; }
  .service-grid { margin-top: 50px; }
  .portfolio-grid { grid-template-columns: 1fr; }
  .portfolio-shot:nth-child(3n+2) { margin-top: 0; }
  .image-crop { height: 410px; }
  .instagram-link { align-items: flex-start; flex-direction: column; gap: 12px; }
  .location-list article { grid-template-columns: 34px 1fr; gap: 12px; }
  .process-section, .booking-section { padding: 80px 7vw; }
  .booking-form { grid-template-columns: 1fr; padding: 30px 22px; }
  .booking-form button, .booking-form > p { grid-column: 1; }
  .faq-list summary { font-size: 15px; }
  .floating-wa { right: 14px; bottom: 14px; }
  .admin-sidebar { flex-wrap: wrap; gap: 15px; }
  .admin-sidebar nav { width: 100%; margin: 0; }
  .admin-sidebar nav { overflow-x: auto; }
  .admin-sidebar nav button, .admin-sidebar nav a { flex: 1 0 auto; }
  .admin-main { padding: 26px 5vw 55px; }
  .admin-topbar { align-items: flex-start; flex-direction: column; }
  .admin-topbar h1 { font-size: 39px; }
  .admin-stats { grid-template-columns: 1fr; }
  .admin-stats article { min-height: 85px; }
  .admin-form, .admin-list { padding: 19px; }
  .form-row { grid-template-columns: 1fr; }
  .portfolio-admin-card { grid-template-columns: 85px 1fr; }
  .portfolio-admin-card > img { width: 85px; height: 85px; }
  .portfolio-admin-card .card-actions, .faq-admin-card .card-actions { grid-column: 1 / -1; flex-direction: row; }
  .faq-admin-card { grid-template-columns: 28px 1fr; }
  .admin-user-card { grid-template-columns: 46px 1fr; }
  .admin-user-card .card-actions { grid-column: 1 / -1; }
  .settings-hero-card { grid-template-columns: 1fr; padding: 19px; }
  .settings-hero-card > img { width: 100%; height: 220px; }
  .settings-grid, .settings-option-columns { grid-template-columns: 1fr; padding: 19px; }
  .settings-group > summary { padding: 19px; }
  .settings-repeat-grid { padding: 19px; }
  .settings-savebar { align-items: stretch; flex-direction: column; bottom: 8px; }
  .settings-savebar button { width: 100%; min-width: 0; }
  .installer-grid { grid-template-columns: 1fr; }
  .installer-form fieldset { padding: 17px; }
}
