@font-face{font-family:Cormorant;src:url('lib/fonts/Cormorant-Regular.woff')}
@font-face{font-family:Lato;src:url('lib/fonts/Lato2-Regular.woff')}
@font-face{font-family:Lato;src:url('lib/fonts/Lato2-Bold.woff');font-weight:700}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#f8f6f1;color:#342d40;font-family:Lato,Arial,sans-serif;line-height:1.6}
a{color:inherit}
.hero{min-height:86vh;background:#e8e2f0;padding:66px 8vw;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;color:#716487}
.eyebrow,.kicker,.divider span,.dayhead p,.choice-label,.funnel-type,.nav-brand{font-size:12px;letter-spacing:.22em;font-weight:700}
.hero h1{font:400 clamp(68px,13vw,150px)/.85 Cormorant,serif;margin:18px 0 10px}
.hero-sub{font:400 clamp(34px,5vw,58px)/1 Cormorant,serif;margin:0 0 18px}
.deck{font:400 clamp(21px,3vw,32px)/1.35 Cormorant,serif;max-width:760px;margin:0}
.start{display:inline-block;text-decoration:none;color:#716487;font-weight:700;font-size:12px;letter-spacing:.08em;margin-top:30px;border:1px solid #716487;border-radius:30px;padding:13px 22px}
.intro,.mapsec,.close{padding:84px max(7vw,24px);max-width:1100px;margin:auto}
.intro h2,.mapsec h2,.close h2{font:400 clamp(40px,6vw,70px)/1 Cormorant,serif;margin:8px 0 20px}
.intro>p:not(.kicker),.mapsec>p:not(.kicker),.close>p{max-width:760px;font-size:18px}
.chips{display:flex;gap:10px;flex-wrap:wrap;margin-top:30px}
.chips span{border:1px solid #d6cbe0;border-radius:30px;padding:8px 14px;font-size:11px;letter-spacing:.1em}
.install-card{max-width:980px;margin:56px auto 76px;padding:32px 36px;background:#f2edf6;border:1px solid #d8cde3;border-radius:22px;display:grid;grid-template-columns:1fr auto;gap:28px;align-items:center}
.install-card h2{font:500 42px/1.05 Cormorant,Georgia,serif;margin:8px 0 10px}
.install-card p{margin:0;max-width:620px}
.install-button{appearance:none;border:1px solid #9584aa;background:transparent;color:#342d40;border-radius:999px;padding:12px 16px;font:700 10px/1 Lato,Arial,sans-serif;letter-spacing:.13em;cursor:pointer}
.install-button:hover{background:#e8e2f0}

.divider{min-height:46vh;display:flex;align-items:flex-end;padding:64px max(7vw,24px);color:#716487;position:relative;overflow:hidden}
.divider:before{content:"";position:absolute;inset:0;background:#f2eef7;z-index:0}
.divider:nth-of-type(even):before{background:#e8e0f1}
.divider>div{position:relative;z-index:1}
.divider h2{font:400 clamp(48px,8vw,92px)/.9 Cormorant,serif;margin:10px 0}
.divider p{font-size:14px;margin:0}

.day{max-width:920px;margin:auto;padding:84px max(7vw,24px)}
.dayhead{display:flex;gap:20px;align-items:flex-start;border-bottom:1px solid #d9d8d1;padding-bottom:30px}
.dayhead>span{font:400 64px/1 Cormorant,serif;color:#9584aa}
.dayhead h2{font:400 clamp(36px,5vw,56px)/1 Cormorant,serif;margin:0}
.dayhead p{margin:0 0 8px}
.simple-dayhead{display:block}
.stop{display:grid;grid-template-columns:60px 1fr;gap:22px;padding:42px 0;border-bottom:1px solid #dedbd2}
.num{font:400 30px Cormorant,serif;color:#9584aa}
.stop h3{font:400 32px/1.1 Cormorant,serif;margin:0 0 14px}
.stop p{max-width:700px}
.note,.mini-note{background:#f4eef8;padding:18px 20px;border-left:3px solid #9584aa}
.note b,.mini-note b{display:block;font-size:10px;letter-spacing:.16em;margin-bottom:5px}
.kallan-walk-card{background:#f3eef8;margin:0 -24px;padding-left:24px;padding-right:24px}
.dinner{background:#fbfaf7;margin:0 -24px;padding-left:24px;padding-right:24px}

.choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:22px 0}
.shop-grid,.night-grid{grid-template-columns:1fr 1fr}
.choice-card{border:1px solid #dedfd9;background:#fbfaf7;border-radius:16px;padding:20px}
.choice-card h4,.funnel-card h3{font:400 28px/1.05 Cormorant,serif;margin:4px 0 10px}
.choice-card p:not(.choice-label){font-size:15px;line-height:1.6;margin:0 0 10px}
.featured-choice{background:#f4eef8}

/* KALLAN text-link treatment: no boxes, no browser-blue links, no emoji arrows. */
.stop a,.choice-card a,.map-actions a{
  display:inline-block;
  color:#716487;
  text-decoration:none;
  font:700 11px Lato,Arial,sans-serif;
  letter-spacing:.09em;
  border:0;
  border-bottom:1px solid #a18daf;
  padding:8px 0 5px;
  margin-top:6px;
}
.stop a::after,.choice-card a::after,.map-actions a::after{content:" →";font-weight:400}
.stop a + a,.choice-card a + a{margin-left:18px}
.route-primary{border:0!important;border-bottom:1px solid #a18daf!important;border-radius:0!important;padding:8px 0 5px!important}

.mapsec{max-width:1100px}
.day-map{height:520px;border-radius:6px;margin:30px 0;overflow:hidden;border:1px solid #dedfd9;background:#f2edf6}
.map-actions{display:flex;gap:18px;flex-wrap:wrap}
.close{text-align:center;padding-bottom:120px}
.funnel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:30px 0}
.funnel-card{border:1px solid #dedfd9;background:#fbfaf7;border-radius:16px;padding:22px;display:flex;flex-direction:column;text-align:left}
.funnel-card p{font-size:15px;line-height:1.6}
.funnel-card a,.instagram-cta a{display:inline-block;text-decoration:none;color:#716487;font-weight:700;font-size:11px;letter-spacing:.09em;border-bottom:1px solid #a18daf;padding:8px 0 5px;margin-top:auto;align-self:flex-start}
.funnel-card a::after,.instagram-cta a::after{content:" →";font-weight:400}
.instagram-cta{margin:40px auto 0;max-width:760px;padding:28px 0;border-top:1px solid #dedbd2;border-bottom:1px solid #dedbd2;text-align:left}
.instagram-cta h3{font:400 34px/1.05 Cormorant,serif;margin:4px 0 8px}
.instagram-cta p{font-size:15px}
.brandline{font:400 26px Cormorant,serif!important;color:#716487!important;margin:38px auto 0!important}

/* Left-side menu to match the other Charleston guides. */
.menu-toggle{position:fixed;left:16px;top:16px;z-index:80;border:1px solid rgba(86,106,85,.28);background:rgba(248,246,241,.94);backdrop-filter:blur(8px);border-radius:999px;padding:10px 13px;color:#716487;font:700 10px Lato,Arial,sans-serif;letter-spacing:.1em;cursor:pointer}
.menu-toggle span{margin-left:5px}
.nav-backdrop{position:fixed;inset:0;z-index:88;background:rgba(28,32,28,.28)}
.side-nav{position:fixed;z-index:90;left:0;top:0;height:100vh;height:100dvh;width:min(340px,88vw);padding:64px 30px max(32px,env(safe-area-inset-bottom));background:#f8f6f1;box-shadow:12px 0 40px rgba(36,31,26,.16);transform:translateX(-105%);transition:transform .25s ease;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.side-nav.open{transform:translateX(0)}
.nav-close{position:absolute;right:18px;top:14px;border:0;background:transparent;color:#716487;font-size:32px;cursor:pointer}
.nav-brand{font:700 10px Lato,Arial,sans-serif;letter-spacing:.18em;color:#9584aa;margin:0 0 28px}
.side-nav nav{display:grid}
.side-nav nav a{text-decoration:none;color:#342d40;font:400 30px/1.1 Cormorant,serif;padding:15px 0;border-bottom:1px solid #d9e1d6}
.nav-help{margin-top:32px;padding:20px;background:#f2edf6;border:1px solid #d8cde3}
.nav-help p{margin:0 0 10px;font-size:13px;line-height:1.55}
.nav-help p:last-child{margin-bottom:0}
.nav-help strong{font-size:10px;letter-spacing:.13em}

.kallan-modal{position:fixed;z-index:100;inset:0;background:rgba(28,32,28,.5);padding:22px;display:grid;place-items:center}
.kallan-modal[hidden]{display:none}
.modal-card{position:relative;width:min(520px,100%);background:#f8f6f1;border-radius:22px;padding:36px}
.modal-card h2{font:500 40px/1.05 Cormorant,Georgia,serif;margin:8px 0 18px}
.modal-card li{margin:10px 0}
.modal-close{position:absolute;right:18px;top:14px;border:0;background:transparent;font-size:28px;cursor:pointer}
.map-fallback{height:100%;display:grid;place-items:center;text-align:center;padding:28px;background:#f2edf6;color:#716487}

@media(max-width:700px){
  body{font-size:16px}
  .hero{min-height:74vh;padding:46px 22px}
  .hero h1{font-size:57px;overflow-wrap:anywhere}
  .hero-sub{font-size:36px}
  .deck{font-size:23px}
  .intro,.mapsec,.close,.day{padding:60px 22px}
  .install-card{margin:34px 20px 58px;padding:28px 22px;grid-template-columns:1fr}
  .install-card h2{font-size:36px}
  .install-button{width:100%}
  .divider{min-height:42vh;padding:48px 22px}
  .divider h2{font-size:46px}
  .divider p{font-size:13px}
  .dayhead h2{font-size:38px}
  .stop{grid-template-columns:38px 1fr;gap:10px;padding:34px 0}
  .stop h3{font-size:29px}
  .stop p{font-size:16px;line-height:1.65}
  .choice-grid,.shop-grid,.night-grid,.funnel-grid{grid-template-columns:1fr}
  .choice-card{padding:18px}
  .kallan-walk-card,.dinner{margin:0 -12px;padding-left:12px;padding-right:12px}
  .day-map{height:430px}
  .menu-toggle{top:max(12px,env(safe-area-inset-top));left:12px}
  .stop a + a,.choice-card a + a{margin-left:0;margin-right:14px}
}
@media print{.install-card,.kallan-modal,.menu-toggle,.side-nav,.nav-backdrop{display:none!important}}

.walk-map-wrap{margin-top:26px}
.walk-map-title{font:700 10px Lato,Arial,sans-serif!important;letter-spacing:.16em!important;color:#9584aa!important;margin:0 0 10px!important}
.walk-map{height:390px;border:1px solid #cfd8cb;border-radius:6px;overflow:hidden;background:#f2edf6}
.brand-tag{margin-top:44px;padding-top:28px;border-top:1px solid #dedbd2}
.brandline{margin:0!important}
.brand-subline{font:400 22px/1.25 Cormorant,serif!important;color:#716487!important;margin:4px auto 0!important;max-width:680px!important}
@media(max-width:700px){.walk-map{height:340px}.brand-subline{font-size:20px!important}}

/* Final spacing pass */
.day{padding-top:54px;padding-bottom:68px}
.divider{min-height:34vh;padding-top:44px;padding-bottom:44px}
#afternoon,#evening{padding-top:46px}
.mapsec,.close{padding-top:62px}

.calendar-section{max-width:920px;margin:0 auto;padding:64px max(7vw,24px);border-top:1px solid #dedbd2}
.calendar-section h2{font:400 clamp(40px,6vw,62px)/1 Cormorant,serif;margin:8px 0 16px}
.calendar-section>p:not(.kicker){max-width:720px;font-size:17px}
.calendar-form{margin-top:26px}
.calendar-form label{display:block;font:700 10px Lato,Arial,sans-serif;letter-spacing:.15em;color:#9584aa;margin-bottom:9px}
.calendar-row{display:flex;gap:12px;align-items:stretch;flex-wrap:wrap}
.calendar-row input{min-height:46px;border:1px solid #d8cde3;background:#fbfaf7;color:#342d40;padding:10px 12px;font:400 16px Lato,Arial,sans-serif}
.calendar-row button{border:1px solid #9584aa;background:transparent;color:#716487;padding:12px 18px;font:700 10px Lato,Arial,sans-serif;letter-spacing:.12em;cursor:pointer}
.calendar-row button:hover{background:#e8e2f0}
.calendar-note{font-size:13px!important;color:#697066;margin-top:12px!important}
.funnel-grid-tight{grid-template-columns:1.15fr .85fr}
.funnel-links{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin-top:8px}
.funnel-links a{margin-top:0}
@media(max-width:700px){
  .day{padding-top:42px}
  #afternoon,#evening{padding-top:38px}
  .divider{min-height:28vh;padding-top:36px;padding-bottom:36px}
  .calendar-section{padding:52px 22px}
  .calendar-row{display:grid;grid-template-columns:1fr}
  .calendar-row input,.calendar-row button{width:100%}
  .funnel-grid-tight{grid-template-columns:1fr}
}


.brand-links{
  display:flex;
  justify-content:center;
  gap:22px;
  flex-wrap:wrap;
  margin:34px 0 0;
}
.brand-links a{
  display:inline-block;
  text-decoration:none;
  color:#716487;
  font:700 11px Lato,Arial,sans-serif;
  letter-spacing:.09em;
  border-bottom:1px solid #a18daf;
  padding:8px 0 5px;
}
.brand-links a::after{content:" →";font-weight:400}
@media(max-width:700px){
  .brand-links{gap:12px 18px}
}

/* Singapore edition: consistent lavender and single-card upgrade */
.funnel-grid.funnel-grid-tight{grid-template-columns:minmax(0,1fr);max-width:600px;margin:30px auto}
