/* hanamichi 海外移住カウンセリング（ご提案用サンプル 2026-11-04）
   色は3つの国に1色ずつ：日本＝桜色・韓国＝青磁の緑・中国＝杏色。字の色は濃い梅色。
   見せ場は一番上の絵はがき（エアメールの縁・3枚の切手・消印）。ほかは静かに。 */
:root{
  --milk:#FFF6F8; --paper:#fff; --plum:#5A3E4B; --plum2:#7A6270; --line:#F2D7DF;
  --berry:#CF3F72; --berry-d:#A92F5C;
  --sakura:#F7B7C8; --sakura-s:#FBD3DE; --sakura-t:#FFEFF3;
  --celadon:#8FD3C1; --celadon-s:#CDEEE4; --celadon-t:#EAF7F2; --celadon-d:#1F7A69;
  --apricot:#FFC58F; --apricot-s:#FFE0BF; --apricot-t:#FFF1E2; --apricot-d:#B4572E;
  --airmail:repeating-linear-gradient(135deg,var(--sakura) 0 16px,#fff 16px 22px,var(--celadon) 22px 38px,#fff 38px 44px,var(--apricot) 44px 60px,#fff 60px 66px);
  --f-num:"Fredoka",var(--f-body);
  --hw:500;
}
:root[data-lang="ja"]{--f-head:"Kiwi Maru","Zen Maru Gothic",serif;--f-body:"Zen Maru Gothic","Hiragino Maru Gothic ProN","Hiragino Sans",sans-serif;--f-hand:"Yomogi","Zen Maru Gothic",cursive;--hw:500}
:root[data-lang="ko"]{--f-head:"Gowun Batang","AppleMyungjo",serif;--f-body:"Gowun Dodum","Apple SD Gothic Neo","Malgun Gothic",sans-serif;--f-hand:"Gaegu","Gowun Dodum",cursive;--hw:700}
:root[data-lang="zh"]{--f-head:"ZCOOL XiaoWei","Songti SC",serif;--f-body:"Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;--f-hand:"Long Cang","Noto Sans SC",cursive;--hw:400}
/* ページと違う言葉の部分（lang を付けた要素だけ） */
body [lang="ko"]{font-family:"Gowun Dodum","Apple SD Gothic Neo","Malgun Gothic","Noto Sans KR","Noto Sans CJK KR",sans-serif}
body [lang="zh-Hans"]{font-family:"Noto Sans SC","PingFang SC","Microsoft YaHei","Noto Sans CJK SC",sans-serif}
body [lang="ja"]{font-family:var(--f-body)}
:root[data-lang="ko"] body [lang="ja"],:root[data-lang="zh"] body [lang="ja"]{font-family:"Hiragino Sans","Yu Gothic","Noto Sans JP","Noto Sans CJK JP",sans-serif}
:root[data-lang="ja"] .hero-h1,:root[data-lang="ja"] .sec h2,:root[data-lang="ja"] .final-card h2,:root[data-lang="ja"] .pc-msg{word-break:auto-phrase}
:root[data-lang="ko"] body{word-break:keep-all;overflow-wrap:anywhere}
:root[data-lang="ko"] body [lang="ja"],:root[data-lang="ko"] body [lang="zh-Hans"]{word-break:normal}
:root[data-lang="zh"] .sec h3{font-family:var(--f-body);font-weight:700}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--milk);color:var(--plum);font-family:var(--f-body);font-size:16px;line-height:1.9;font-weight:500;-webkit-font-smoothing:antialiased}
:root[data-lang="ko"] body,:root[data-lang="zh"] body{font-weight:400}
h1,h2,h3,p,ul,ol,figure,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
img,svg{display:block;max-width:100%}
a{color:var(--berry)}
button{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--celadon-d);outline-offset:3px;border-radius:6px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--plum);color:#fff;padding:8px 14px;border-radius:8px}
.skip:focus{top:12px}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px}
.small{font-size:13.5px;color:var(--plum2);line-height:1.8}

.sample-bar{background:var(--plum);color:#fff;font-size:13px;line-height:1.6;text-align:center;padding:8px 16px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 30px;border-radius:999px;font-weight:700;font-size:16px;line-height:1.3;text-decoration:none;text-align:center;border:0;cursor:pointer;transition:transform .12s,box-shadow .12s,background .15s}
.btn-main{background:var(--berry);color:#fff;box-shadow:0 4px 0 var(--berry-d)}
.btn-main:hover{background:#C23868}
.btn-main:active{transform:translateY(3px);box-shadow:0 1px 0 var(--berry-d)}
.btn-line{background:#fff;color:var(--plum);border:2px solid var(--sakura)}
.btn-line:hover{border-color:var(--berry)}
.btn-s{min-height:40px;padding:0 18px;font-size:14px;box-shadow:0 3px 0 var(--berry-d)}

/* header */
.site-head{position:sticky;top:0;z-index:50;background:rgba(255,246,248,.94);backdrop-filter:saturate(1.2) blur(8px);-webkit-backdrop-filter:saturate(1.2) blur(8px)}
.site-head::before{content:"";display:block;height:5px;background:var(--airmail)}
.head-row{display:flex;align-items:center;gap:20px;min-height:72px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--plum);margin-right:auto}
.logo-mark{width:38px;height:38px;flex:none;transform:rotate(-6deg)}
.brand-text{display:flex;flex-direction:column;line-height:1.15}
.brand-name{font-family:"Fredoka",sans-serif;font-weight:600;font-size:22px;letter-spacing:.01em}
.brand-sub{font-size:11.5px;color:var(--plum2);font-weight:500}
.nav{display:flex;align-items:center;gap:22px}
.nav a:not(.btn){color:var(--plum);text-decoration:none;font-size:14.5px}
.nav a:not(.btn):hover{color:var(--berry)}
.langs{display:flex;gap:4px;font-size:13px}
.langs a{display:block;padding:3px 11px;border-radius:999px;border:1.5px solid var(--line);color:var(--plum);text-decoration:none;line-height:1.6;background:#fff}
.langs a[aria-current]{background:var(--plum);border-color:var(--plum);color:#fff}
.langs a:not([aria-current]):hover{border-color:var(--berry)}
.menu-btn{display:none}

/* hero */
.hero{padding:56px 0 96px;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1fr 1.02fr;gap:56px;align-items:center}
.hero-h1{font-family:var(--f-head);font-weight:var(--hw);font-size:clamp(34px,4.6vw,52px);line-height:1.42;letter-spacing:.02em}
.hero-lead{margin-top:24px;font-size:17px;color:var(--plum2);max-width:31em}
.hero-cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:32px}
.hero-facts{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:28px;font-size:14.5px}
.hero-facts li{display:flex;align-items:center;gap:7px}
.hero-facts li::before{content:"";width:10px;height:10px;border-radius:50% 50% 50% 0;background:var(--sakura);transform:rotate(-45deg);flex:none}
.hero-facts li:nth-child(2)::before{background:var(--celadon)}
.hero-facts li:nth-child(3)::before{background:var(--apricot)}

.hero-art{position:relative;width:100%;max-width:560px;justify-self:end;margin:20px 6px 24px 0}
/* 写真の絵はがき（2026-11-05。写真は tools/make_photos.py で作る） */
.photo-card{position:relative;z-index:1;width:90%;margin:0 0 0 auto;padding:12px 12px 0;background:#fff;border-radius:6px;box-shadow:0 26px 40px -24px rgba(90,62,75,.5);transform:rotate(2.5deg);animation:photo-in .7s cubic-bezier(.2,.8,.25,1) both}
.photo-card img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:2px;background:var(--sakura-t)}
.photo-card figcaption{height:22px}
/* 写真を留めるマスキングテープに、手書きのひとこと */
.photo-cap{position:absolute;left:16px;top:-12px;padding:5px 18px 4px;font-family:var(--f-hand);font-weight:400;font-size:clamp(14px,1.45vw,18px);line-height:1.4;color:var(--plum);background:rgba(251,211,222,.88);transform:rotate(-5deg);clip-path:polygon(0 8%,4% 0,8% 10%,12% 0,100% 0,96% 12%,100% 24%,96% 36%,100% 48%,96% 60%,100% 72%,96% 84%,100% 100%,0 100%,4% 88%,0 76%,4% 64%,0 52%,4% 40%,0 28%,4% 16%)}
.photo-card small{position:absolute;right:20px;top:20px;padding:1px 9px;border-radius:999px;background:rgba(90,62,75,.62);color:#fff;font-size:10.5px;line-height:1.7}
@keyframes photo-in{from{opacity:0;transform:translateY(14px) rotate(5deg)}to{opacity:1;transform:rotate(2.5deg)}}
.postcard{position:relative;z-index:2;display:grid;grid-template-columns:1.12fr 1fr;gap:0;width:76%;margin-top:-17%;aspect-ratio:3/2;padding:14px 14px 12px;border:9px solid transparent;border-radius:12px;background:linear-gradient(#fff,#fff) padding-box,var(--airmail) border-box;box-shadow:0 26px 40px -22px rgba(90,62,75,.5);transform:rotate(-4deg);animation:pc-in .8s cubic-bezier(.2,.8,.25,1) .3s both}
.pc-msg{padding:2px 12px 0 2px;font-family:var(--f-hand);font-weight:400;color:var(--plum);font-size:clamp(11.5px,1.22vw,15px);line-height:2.05em;background-image:repeating-linear-gradient(transparent 0 calc(2.05em - 1px),var(--line) calc(2.05em - 1px) 2.05em);background-position:0 .2em}
.pc-hello{font-size:1.12em}
.pc-sign{text-align:right;color:var(--berry);font-size:1.25em}
.pc-side{display:flex;flex-direction:column;justify-content:space-between;padding-left:12px;border-left:1.5px solid var(--line);min-width:0}
.pc-stamps{position:relative;height:66%}
.stamp{position:absolute;width:41%;filter:drop-shadow(0 3px 3px rgba(90,62,75,.18));animation:stamp-in .55s cubic-bezier(.3,1.4,.5,1) both}
.stamp--ja{right:0;top:0;--r:5deg;transform:rotate(var(--r));animation-delay:.85s}
.stamp--ko{right:29%;top:10%;--r:-6deg;transform:rotate(var(--r));animation-delay:1s}
.stamp--zh{right:58%;top:3%;--r:3deg;transform:rotate(var(--r));animation-delay:1.15s}
.stamp-label{font-family:"Fredoka",sans-serif;font-weight:600;font-size:13px;letter-spacing:.08em;fill:var(--plum)}
.postmark{position:absolute;left:-8%;top:50%;width:84%;color:rgba(90,62,75,.5);transform:rotate(-9deg);animation:fade-in .5s ease-out 1.35s both}
.postmark text{fill:currentColor;font-family:"Fredoka",sans-serif;font-weight:600}
.pm-ring{font-size:10.5px;letter-spacing:.12em}
.pm-mid{font-size:14px;letter-spacing:.1em}
.pm-mid--s{font-size:12px}
.pc-address{display:flex;flex-direction:column;gap:clamp(12px,2.2vw,20px);padding-bottom:6px}
.pc-address span{height:1.5px;background:var(--line)}
.pc-address span:first-child{width:70%}
.pc-flight{position:absolute;z-index:3;width:30%;right:-5%;top:-11%;animation:fade-in .6s ease-out 1.5s both}
@keyframes pc-in{from{opacity:0;transform:translateY(-22px) rotate(-10deg)}to{opacity:1;transform:rotate(-4deg)}}
@keyframes stamp-in{0%{opacity:0;transform:scale(1.4) rotate(var(--r))}70%{opacity:1;transform:scale(.95) rotate(var(--r))}100%{opacity:1;transform:scale(1) rotate(var(--r))}}
@keyframes fade-in{from{opacity:0}to{opacity:1}}

/* sections */
.sec{padding:96px 0}
.sec h2{font-family:var(--f-head);font-weight:var(--hw);font-size:clamp(26px,3.1vw,34px);line-height:1.45;letter-spacing:.02em}
.sec h3{font-family:var(--f-head);font-weight:var(--hw);font-size:19px;line-height:1.5}
.sec-lead{margin-top:18px;color:var(--plum2);max-width:32em}
.sec-note{margin-top:16px;color:var(--plum2);font-size:15px;max-width:30em}

/* worries（チャット） */
.worries{background:#fff}
.worries-grid{display:grid;grid-template-columns:.9fr 1.3fr;gap:64px;align-items:start}
.worries-head{position:sticky;top:110px}
.chat{display:flex;flex-direction:column;gap:14px}
.msg{display:flex;align-items:flex-end;gap:10px}
.msg-av{flex:none;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:700}
.msg--ja .msg-av{background:var(--sakura-s);color:var(--berry-d)}
.msg--ko .msg-av{background:var(--celadon-s);color:var(--celadon-d)}
.msg--zh .msg-av{background:var(--apricot-s);color:var(--apricot-d)}
.msg-bubble{max-width:min(82%,30em);padding:11px 18px;border-radius:20px 20px 20px 6px;font-size:15.5px;line-height:1.75}
.msg--ja .msg-bubble{background:var(--sakura-t)}
.msg--ko .msg-bubble{background:var(--celadon-t)}
.msg--zh .msg-bubble{background:var(--apricot-t)}
.msg-trans{margin-top:6px;padding-top:6px;border-top:1px dashed rgba(90,62,75,.2);font-size:13px;color:var(--plum2)}
.msg--reply{justify-content:flex-end;margin-top:10px}
.msg--reply .msg-bubble{background:var(--berry);color:#fff;border-radius:20px 20px 6px 20px}
.msg-av--me{width:48px;height:48px;padding:0;border:3px solid #fff;box-shadow:0 0 0 1.5px var(--line)}
.msg-av--me img{width:100%;height:100%;border-radius:50%;object-fit:cover}

/* topics */
.topic-list{display:grid;grid-template-columns:1fr 1fr;gap:40px 64px;margin-top:44px}
.topic{display:grid;grid-template-columns:64px 1fr;gap:18px;align-items:start}
.topic-ic{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;color:var(--plum)}
.topic--0 .topic-ic{background:var(--sakura-s)}
.topic--1 .topic-ic{background:var(--celadon-s)}
.topic--2 .topic-ic{background:var(--apricot-s)}
.ticon{width:34px;height:34px}
.topic p{margin-top:4px;font-size:15px;color:var(--plum2);line-height:1.85}
.note-box{margin-top:48px;padding:16px 22px;border-radius:14px;background:#fff;border:1.5px dashed var(--sakura);font-size:14px;color:var(--plum2);line-height:1.8;max-width:46em}

/* routes */
.routes{background:#fff}
.routes-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:56px;align-items:center}
.route-map svg{width:100%;height:auto}
.rm-name{font-family:var(--f-head);font-weight:var(--hw);font-size:27px;fill:var(--plum)}
.rm-note{font-family:var(--f-body);font-size:12.5px;fill:var(--plum2)}
.rm-ring{fill:none;stroke:#C9B3BD;stroke-width:2;stroke-dasharray:3 8;stroke-linecap:round}

/* profile */
.profile-grid{display:grid;grid-template-columns:280px 1fr;gap:64px;align-items:start}
.profile-pic img{width:100%;height:auto;border-radius:50%;border:8px solid #fff;box-shadow:0 20px 34px -22px rgba(90,62,75,.5)}
.profile-pic figcaption{margin-top:12px;font-size:12px;color:var(--plum2);text-align:center}
.profile-name{margin-top:20px;font-family:var(--f-head);font-weight:var(--hw);font-size:26px;line-height:1.4}
.profile-name small{font-size:14px;margin-left:4px;color:var(--plum2)}
.profile-name span{display:block;font-family:var(--f-body);font-size:14px;color:var(--plum2);font-weight:500}
.profile-msg{margin-top:22px;padding:4px 0 4px 20px;border-left:3px solid var(--sakura);font-size:16.5px;line-height:2;max-width:34em}
.timeline{margin-top:30px;position:relative}
.timeline li{position:relative;padding:0 0 16px 32px;font-size:15px}
.timeline li::before{content:"";position:absolute;left:0;top:.55em;width:14px;height:14px;border-radius:50%;background:#fff;border:3px solid var(--berry)}
.timeline li::after{content:"";position:absolute;left:6.5px;top:calc(.55em + 14px);bottom:0;width:1.5px;background:var(--sakura)}
.timeline li:last-child{padding-bottom:0}
.timeline li:last-child::after{display:none}
.timeline li:last-child::before{background:var(--berry)}
.langs-spoken{margin-top:28px;display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}
.langs-spoken h3{font-family:var(--f-body);font-size:14px;color:var(--plum2);font-weight:500}
.langs-spoken ul{display:flex;flex-wrap:wrap;gap:8px}
.langs-spoken li{background:#fff;border:1.5px solid var(--line);border-radius:999px;padding:2px 14px;font-size:14px}

/* booking */
.booking{background:var(--celadon-t)}
.booking-grid{display:grid;grid-template-columns:.85fr 1.25fr;gap:48px;align-items:start;margin-top:40px}
.tag{position:relative;background:#fff;padding:24px 28px 22px 78px;border-radius:16px 24px 24px 16px;transform:rotate(-2deg);box-shadow:0 14px 26px -18px rgba(31,122,105,.5)}
.tag::after{content:"";position:absolute;left:56px;top:14px;bottom:14px;border-left:2px dashed var(--celadon-s)}
.tag-hole{position:absolute;left:20px;top:50%;width:18px;height:18px;margin-top:-9px;border-radius:50%;background:var(--celadon-t);box-shadow:inset 0 0 0 3px var(--celadon)}
.tag-unit{font-size:15px;color:var(--plum2)}
.tag-price{display:flex;align-items:baseline;gap:6px;line-height:1.1;margin-top:2px}
.tag-num{font-family:"Fredoka",sans-serif;font-weight:600;font-size:56px;color:var(--berry);letter-spacing:.01em}
.tag-cur{font-size:19px;font-weight:700}
.tag-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.tag-chips li{font-size:12.5px;background:var(--milk);border-radius:999px;padding:1px 12px}
.slots-h{margin-top:36px;font-size:16px !important}
.slots{width:100%;border-collapse:collapse;margin-top:10px;font-size:15px}
.slots th,.slots td{padding:12px 6px;border-bottom:1.5px dashed rgba(31,122,105,.22);text-align:left;vertical-align:top;line-height:1.7}
.slots th{width:4.5em;font-weight:700}
.slots td{font-family:var(--f-num);font-weight:500}
.slots-cap{text-align:right !important;white-space:nowrap}
.price-col .small{margin-top:12px}

.cal{background:#fff;border-radius:24px;padding:24px 24px 22px;box-shadow:0 18px 34px -24px rgba(31,122,105,.45)}
.cal-h{font-size:17px !important}
.cal-top{display:flex;align-items:center;justify-content:space-between;margin-top:12px}
.cal-month{font-family:var(--f-head);font-weight:var(--hw);font-size:20px}
.cal-nav{width:40px;height:40px;border-radius:50%;border:1.5px solid var(--line);background:#fff;font-size:22px;line-height:1;cursor:pointer;display:grid;place-items:center;padding:0 0 3px}
.cal-nav:hover:not(:disabled){border-color:var(--berry)}
.cal-nav:disabled{opacity:.35;cursor:default}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-top:14px}
.cal-wd{text-align:center;font-size:12px;color:var(--plum2);padding-bottom:2px}
.cal-wd:first-child{color:var(--berry)}
.cal-day{position:relative;height:52px;border:0;border-radius:12px;background:var(--milk);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;cursor:pointer;font-family:"Fredoka",sans-serif;font-weight:500;font-size:16px;line-height:1;color:var(--plum);transition:background .12s}
.cal-day::after{content:"";width:7px;height:7px;border-radius:50%;background:transparent}
.cal-day.is-ok::after{background:#2E9C88}
.cal-day.is-few::after{background:#F0A04B}
.cal-day.is-full::after{background:#CBB7C0}
.cal-day.is-off{background:transparent;color:#BBA9B1;cursor:default}
.cal-day.is-off::after{width:9px;height:2px;border-radius:1px;background:#D9C9D0}
.cal-day.is-past{background:transparent;color:#D0C2C8;cursor:default}
.cal-day.is-full{color:#A8949D}
.cal-day:not([aria-disabled="true"]):hover{background:var(--sakura-s)}
.cal-day[aria-pressed="true"]{background:var(--berry);color:#fff}
.cal-day[aria-pressed="true"]::after{background:#fff}
.cal-day.is-today{box-shadow:inset 0 0 0 1.5px var(--plum2)}
.cal-empty{height:52px}
.cal-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:14px;font-size:12.5px;color:var(--plum2)}
.cal-legend li{display:flex;align-items:center;gap:6px}
.d{display:inline-block;width:8px;height:8px;border-radius:50%}
.d-ok{background:#2E9C88}.d-few{background:#F0A04B}.d-full{background:#CBB7C0}.d-off{width:10px;height:2px;border-radius:1px;background:#D9C9D0}
.cal-slots{margin-top:18px;padding-top:18px;border-top:1.5px dashed var(--line)}
.cal-hint{font-size:14px;color:var(--plum2)}
.cal-date{font-family:var(--f-head);font-weight:var(--hw);font-size:17px}
.slot-list{display:grid;gap:8px;margin-top:10px}
.slot-btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 16px;border-radius:14px;border:2px solid var(--line);background:#fff;cursor:pointer;text-align:left;line-height:1.5}
.slot-btn:hover:not(:disabled){border-color:var(--sakura)}
.slot-btn[aria-pressed="true"]{border-color:var(--berry);background:var(--sakura-t)}
.slot-btn:disabled{cursor:default;background:#FBF7F8;color:#A8949D}
.slot-main{font-family:var(--f-num);font-weight:500;font-size:15.5px}
.slot-main b{font-family:var(--f-body);font-weight:700;margin-right:8px}
.slot-sub{display:block;font-size:12.5px;color:var(--plum2);font-family:var(--f-num)}
.slot-state{flex:none;font-size:12.5px;font-weight:700;border-radius:999px;padding:2px 12px;background:var(--celadon-t);color:var(--celadon-d)}
.slot-btn:disabled .slot-state{background:#F1E8EB;color:#A8949D}
.cal-sum{margin-top:16px;padding:16px 18px;border-radius:16px;background:var(--milk)}
.cal-sum-label{font-size:12.5px;color:var(--plum2)}
.cal-sum-when{font-weight:700;font-size:16px;line-height:1.6}
.cal-sum-price{font-size:14px;color:var(--plum2)}
.cal-sum .btn{width:100%;margin-top:12px}
.cal-demo{margin-top:10px;font-size:13px;color:var(--plum2)}

/* flow */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;margin-top:44px;position:relative}
.steps::before{content:"";position:absolute;top:26px;left:12%;right:12%;border-top:2px dashed var(--sakura)}
.step{position:relative;text-align:center}
.step-n{position:relative;display:grid;place-items:center;width:54px;height:54px;margin:0 auto 14px;border-radius:50%;background:#fff;border:2.5px solid var(--berry);color:var(--berry);font-family:"Fredoka",sans-serif;font-weight:600;font-size:22px}
.step h3{font-size:17px !important}
.step p{margin-top:6px;font-size:14.5px;color:var(--plum2);line-height:1.8}

/* voices */
.voices{background:#fff}
.voice-list{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:36px}
.voice{position:relative;background:var(--milk);border-radius:20px;padding:26px 24px 22px}
.voice-badge{position:absolute;top:14px;right:14px;font-size:11.5px;line-height:1.6;background:var(--plum);color:#fff;border-radius:999px;padding:1px 10px}
.voice-text{margin-top:14px;font-size:15.5px;line-height:1.9}
.voice-who{margin-top:12px;font-size:13px;color:var(--plum2)}

/* faq */
.faq-list{max-width:860px;margin-top:36px;display:flex;flex-direction:column;gap:10px}
.faq-list details{background:#fff;border-radius:16px;padding:0 24px}
.faq-list summary{position:relative;cursor:pointer;list-style:none;padding:18px 36px 18px 0;font-weight:700;line-height:1.6}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::before,.faq-list summary::after{content:"";position:absolute;right:4px;top:50%;width:14px;height:2px;border-radius:1px;background:var(--berry);transition:transform .2s}
.faq-list summary::after{transform:rotate(90deg)}
.faq-list details[open] summary::after{transform:rotate(0)}
.faq-list details p{padding:0 0 20px;color:var(--plum2);font-size:15px}

/* final */
.final{padding-top:24px}
.final-card{text-align:center;padding:52px 32px 44px;border:12px solid transparent;border-radius:20px;background:linear-gradient(#fff,#fff) padding-box,var(--airmail) border-box}
.final-card .btn{margin-top:26px}
.final-lead{margin-top:30px;font-size:14.5px;color:var(--plum2)}
.contacts{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:14px}
.contact-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 18px;border-radius:999px;border:1.5px solid var(--line);background:var(--milk);font-size:14px;cursor:pointer}
.contact-btn:hover{border-color:var(--berry)}
.cicon{width:18px;height:18px;color:var(--berry)}
.toast{margin-top:14px;font-size:13px;color:var(--plum2)}

/* footer */
.site-foot{margin-top:96px;background:var(--plum);color:#F6E9EE;padding:44px 0 24px}
.site-foot::before{content:"";display:block;height:5px;margin-top:-44px;margin-bottom:39px;background:var(--airmail)}
.foot-grid{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:24px}
.brand--foot{color:#fff;margin:0 0 8px}
.brand--foot .brand-sub{color:#E8D5DD}
.site-foot .small{color:#E8D5DD}
.foot-links{font-size:13px;color:#E8D5DD;line-height:2}
.langs--foot a{background:transparent;color:#fff;border-color:rgba(255,255,255,.35)}
.langs--foot a[aria-current]{background:#fff;color:var(--plum);border-color:#fff}
.copy{margin-top:28px;font-size:12px;color:#CDB6C0}

.sticky-cta{display:none}

/* tablet & phone */
@media (max-width:900px){
  .nav{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:0;background:var(--milk);padding:8px 16px 18px;border-bottom:1.5px solid var(--line);box-shadow:0 18px 24px -20px rgba(90,62,75,.4)}
  .nav.is-open{display:flex}
  .nav a:not(.btn){padding:12px 4px;border-bottom:1px solid var(--line);font-size:15.5px}
  .nav-cta{margin-top:14px;min-height:48px}
  .head-row{gap:10px;min-height:64px;position:relative}
  .menu-btn{display:inline-flex;flex-direction:column;align-items:center;gap:2px;border:0;background:transparent;padding:4px 2px;cursor:pointer;font-size:10.5px;color:var(--plum)}
  .menu-bars{position:relative;width:22px;height:2px;background:currentColor;border-radius:1px;margin:7px 0}
  .menu-bars::before,.menu-bars::after{content:"";position:absolute;left:0;width:22px;height:2px;background:currentColor;border-radius:1px;transition:transform .2s}
  .menu-bars::before{top:-7px}.menu-bars::after{top:7px}
  .menu-btn[aria-expanded="true"] .menu-bars{background:transparent}
  .menu-btn[aria-expanded="true"] .menu-bars::before{transform:translateY(7px) rotate(45deg)}
  .menu-btn[aria-expanded="true"] .menu-bars::after{transform:translateY(-7px) rotate(-45deg)}
  .hero-grid,.worries-grid,.routes-grid,.profile-grid,.booking-grid{grid-template-columns:1fr}
  .hero-grid{gap:40px}
  .hero-art{justify-self:center;margin:10px auto 34px}
  .worries-head{position:static}
  .worries-grid,.routes-grid{gap:36px}
  .profile-grid{gap:20px}
  .profile-pic{max-width:220px}
  .steps{grid-template-columns:1fr 1fr;row-gap:36px}
  .steps::before{display:none}
  .voice-list{grid-template-columns:1fr}
  .sticky-cta{position:fixed;left:16px;right:16px;bottom:14px;z-index:40;display:flex;min-height:52px;align-items:center;justify-content:center;border-radius:999px;background:var(--berry);color:#fff;font-weight:700;text-decoration:none;box-shadow:0 4px 0 var(--berry-d),0 14px 24px -10px rgba(90,62,75,.5)}
  .sticky-cta[hidden]{display:none}
}
@media (max-width:600px){
  .wrap{padding:0 16px}
  .brand-sub{display:none}
  .brand-name{font-size:20px}
  .logo-mark{width:32px;height:32px}
  .langs{font-size:12px;gap:3px}
  .langs a{padding:2px 8px}
  .hero{padding:36px 0 64px}
  .hero-lead{font-size:16px}
  .hero-cta .btn{flex:1 1 100%}
  .hero-h1{font-size:31px}
  .hero-art{order:-1;max-width:380px;margin:18px auto 30px}
  .pc-msg{font-size:11.5px}
  .postcard{width:84%;margin-top:-19%;padding:9px 9px 8px;border-width:7px}
  .photo-card{padding:8px 8px 0}
  .pc-msg{padding-right:10px}
  .pc-side{padding-left:10px}
    .sec{padding:64px 0}
  .topic-list{grid-template-columns:1fr;gap:28px;margin-top:32px}
  .topic{grid-template-columns:52px 1fr;gap:14px}
  .topic-ic{width:52px;height:52px}
  .ticon{width:28px;height:28px}
  .steps{grid-template-columns:1fr;row-gap:24px}
  .step{display:grid;grid-template-columns:54px 1fr;column-gap:16px;text-align:left}
  .step-n{grid-row:span 2;margin:0}
  .step p{margin-top:2px}
  .cal{padding:18px 14px 16px;border-radius:20px}
  .cal-grid{gap:4px}
  .cal-day{height:44px;font-size:15px;border-radius:10px}
  .cal-empty{height:44px}
  .tag{padding-left:72px}
  .tag::after{left:50px}
  .tag-num{font-size:48px}
  .final-card{padding:40px 18px 32px;border-width:9px}
  .site-foot{margin-top:72px;padding-bottom:88px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none !important;transition:none !important}
}
