/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.relative{position:relative}.start{inset-inline-start:var(--spacing)}.table{display:table}.resize{resize:both}}:root{--paper:#f1efe9;--ink:#101010;--acid:#c7ff1a;--pad:clamp(20px, 3vw, 56px);--font-display:"Arial Narrow", "Helvetica Neue", Arial, sans-serif;--font-ui:Inter, "Helvetica Neue", Arial, "Noto Sans JP", sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--paper)}body{background:var(--paper);color:var(--ink);font-family:var(--font-ui);cursor:none;margin:0;overflow-x:hidden}a,button{color:inherit;font:inherit}a{text-decoration:none}button{cursor:none}img{max-width:100%;display:block}::selection{background:var(--acid);color:var(--ink)}.cursor{--x:-100px;--y:-100px;--cursor-label:"";z-index:1000;background:var(--ink);pointer-events:none;width:18px;height:18px;transform:translate3d(calc(var(--x) - 50%), calc(var(--y) - 50%), 0);mix-blend-mode:difference;border-radius:50%;transition:width .18s,height .18s,background .18s;position:fixed;top:0;left:0}.cursor:after{content:var(--cursor-label);color:var(--ink);letter-spacing:.08em;place-items:center;font-size:8px;font-weight:800;display:grid;position:absolute;inset:0}.cursor.is-active{background:var(--acid);mix-blend-mode:normal;width:52px;height:52px}.site-header{z-index:30;width:100%;padding:24px var(--pad);letter-spacing:.09em;grid-template-columns:1fr auto auto;align-items:center;gap:36px;font-size:11px;font-weight:800;display:grid;position:absolute;top:0;left:0}.brand sup,.footer__brand sup{vertical-align:top;font-size:.34em}.menu-button{letter-spacing:.09em;background:0 0;border:0;padding:0;font-size:11px;font-weight:800}.site-menu{z-index:25;padding:100px var(--pad) 40px;background:var(--acid);visibility:hidden;opacity:0;flex-direction:column;justify-content:center;transition:opacity .3s,transform .3s,visibility .3s;display:flex;position:fixed;inset:0;transform:translateY(-16px)}.site-menu.is-open{visibility:visible;opacity:1;transform:translateY(0)}.site-menu a{border-top:1px solid var(--ink);font-family:var(--font-display);letter-spacing:-.07em;align-items:baseline;gap:24px;padding:8px 0 2px;font-size:clamp(50px,8vw,120px);font-weight:900;line-height:.88;display:flex}.site-menu a:last-child{border-bottom:1px solid var(--ink)}.site-menu a span{width:40px;font-family:var(--font-ui);letter-spacing:0;font-size:10px}.hero{height:100svh;min-height:720px;padding:15vh var(--pad) 32px;position:relative;overflow:hidden}.hero__title{z-index:2;width:min-content;font-family:var(--font-display);letter-spacing:-.075em;text-transform:uppercase;font-size:clamp(84px,12.5vw,210px);font-weight:900;font-stretch:75%;line-height:.78;position:relative}.hero__title span{opacity:0;animation:.8s cubic-bezier(.2,.75,.2,1) forwards title-in;display:block;transform:translateY(1em)}.hero__title span:nth-child(2){animation-delay:.11s}.hero__title span:nth-child(3){animation-delay:.22s}@keyframes title-in{to{opacity:1;transform:translateY(0)}}.hero__visual{z-index:1;opacity:0;background:#dedbd2;width:29vw;min-width:300px;height:68vh;margin:0;transition:opacity .9s .26s,transform 1.2s cubic-bezier(.2,.75,.2,1) .26s;position:absolute;top:17vh;right:10vw;overflow:hidden;transform:scale(1.08)}.hero__visual.is-visible{opacity:1;transform:scale(1)}.hero__visual img{object-fit:cover;object-position:51% 38%;width:100%;height:100%;transition:transform .6s}.hero__visual:hover img{transform:scale(1.025)rotate(.25deg)translate(3px,-3px)}figcaption{z-index:2;color:var(--ink);letter-spacing:.04em;background:#f1efe9d9;padding:4px 6px;font-size:9px;position:absolute;bottom:9px;right:10px}.hero__tag,.hero__scroll{letter-spacing:.12em;margin:0;font-size:10px;font-weight:800;position:absolute;bottom:32px}.hero__tag{left:var(--pad)}.hero__scroll{right:var(--pad)}.manifesto{background:var(--paper);height:300vh;position:relative}.manifesto__sticky{height:100vh;position:sticky;top:0;overflow:hidden}.manifesto__step{padding:var(--pad);opacity:0;flex-direction:column;justify-content:center;transition:opacity .45s,transform .65s cubic-bezier(.2,.7,.2,1);display:flex;position:absolute;inset:0;transform:translateY(120px)}.manifesto__step.is-current{opacity:1;transform:translateY(0)}.manifesto__step:last-child{background:var(--ink);color:var(--paper)}.manifesto h2{font-family:var(--font-display);letter-spacing:-.075em;margin:0;font-size:clamp(80px,13vw,210px);font-weight:900;line-height:.8}.manifesto p{margin:42px 0 0;font-size:clamp(14px,1.5vw,24px);font-weight:700}.manifesto small{letter-spacing:.12em;text-transform:uppercase;margin-top:12px;font-size:10px}.dark{background:var(--ink);color:var(--paper)}.about,.services,.summon,.reports,.specs,.faq,.footer{padding:10vh var(--pad)}.eyebrow,.section-heading p,.fineprint{letter-spacing:.12em;text-transform:uppercase;font-size:10px;font-weight:800}[data-reveal]{opacity:0;transition:opacity .7s,transform .8s cubic-bezier(.2,.7,.2,1);transform:translateY(38px)}[data-reveal].is-visible{opacity:1;transform:translateY(0)}.fact-grid{border-top:1px solid #ffffff40;border-left:1px solid #ffffff40;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:48px;display:grid}.fact{border-bottom:1px solid #ffffff40;border-right:1px solid #ffffff40;outline:none;min-height:36vh;padding:24px;position:relative;overflow:hidden}.fact h3{max-width:90%;font-family:var(--font-display);letter-spacing:-.07em;margin:0;font-size:clamp(58px,8vw,130px);font-weight:900;line-height:.82}.fact p{letter-spacing:.12em;margin:0;font-size:10px;font-weight:800;position:absolute;bottom:18px;right:24px}.fact small{background:var(--acid);color:var(--ink);opacity:0;padding:14px;font-size:12px;font-weight:700;transition:opacity .25s,transform .35s;position:absolute;bottom:20px;left:20px;right:20px;transform:translateY(120%)}.fact:hover small,.fact:focus small{opacity:1;transform:translateY(0)}.about>.fineprint{text-align:right;margin:24px 0 0 auto}.split-section{min-height:110vh;padding:15vh var(--pad);grid-template-columns:1.12fr .88fr;align-items:center;gap:6vw;display:grid}.campaign__image{height:72vh;margin:0;position:relative;overflow:hidden}.campaign__image img{object-fit:cover;object-position:34% 50%;width:100%;height:100%}.campaign__copy h2,.section-heading h2,.summon>h2,.specs__data h2,.faq__heading h2{font-family:var(--font-display);letter-spacing:-.07em;margin:0;font-weight:900;line-height:.82}.campaign__copy h2{font-size:clamp(68px,8vw,130px)}.campaign__copy>p:not(.jp){letter-spacing:.12em;margin:24px 0 12vh;font-size:10px;font-weight:800}.campaign__copy .jp{font-size:clamp(14px,1.4vw,21px);font-weight:700;line-height:1.7}.section-heading{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:7vh;display:flex}.section-heading h2{font-size:clamp(72px,10vw,170px)}.section-heading p{margin:0 0 8px}.services__body{grid-template-columns:minmax(0,1fr) 30vw;gap:5vw;display:grid}.service-list{border-top:1px solid #ffffff59}.service{border-bottom:1px solid #ffffff59;outline:none;grid-template-columns:40px minmax(0,1fr) auto;align-items:start;gap:18px;min-height:230px;padding:28px 0;display:grid}.service__no,.service p,.service small{letter-spacing:.1em;font-size:10px;font-weight:800}.service h3{font-family:var(--font-display);letter-spacing:-.065em;margin:0;font-size:clamp(42px,5vw,82px);font-weight:900;line-height:.88}.service p{margin:14px 0 0}.service strong{white-space:nowrap;font-size:clamp(17px,2vw,28px)}.service small{opacity:.55;grid-column:2/-1;align-self:end}.service-preview{background:#242424;height:62vh;margin:0;position:sticky;top:12vh;overflow:hidden}.service-preview img{object-fit:cover;object-position:center;width:100%;height:100%;animation:.35s preview-in}@keyframes preview-in{0%{opacity:.25;transform:scale(1.03)}}.service__mobile-image{display:none}.summon{background:var(--acid);min-height:120vh;color:var(--ink);position:relative;overflow:hidden}.summon>h2{z-index:1;max-width:80vw;font-size:clamp(76px,12vw,190px);position:relative}.rolling-stone{font-size:20vw;line-height:1;animation:12s linear infinite roll-stone;position:absolute;top:8vh;left:-10vw}@keyframes roll-stone{to{transform:translate(125vw)rotate(720deg)}}.summon__steps{border-top:1px solid var(--ink);grid-template-columns:repeat(3,1fr);gap:0;margin-top:12vh;display:grid}.summon__steps article{border-right:1px solid var(--ink);min-height:330px;padding:22px}.summon__steps article:first-child{border-left:1px solid var(--ink)}.summon__steps span{font-family:var(--font-display);letter-spacing:-.08em;font-size:clamp(90px,11vw,170px);font-weight:900;line-height:.8}.summon__steps h3{letter-spacing:.1em;margin:38px 0 12px;font-size:14px}.summon__steps p{max-width:260px;margin:0;font-size:13px;font-weight:700;line-height:1.7}.summon__note{text-align:right;letter-spacing:.1em;margin:70px 0 0;font-size:12px;font-weight:900}.summon__note span{letter-spacing:0;font-size:11px}.reports{min-height:250vh}.report-stack{position:relative}.report{top:calc(8vh + var(--index) * 22px);border:1px solid var(--ink);background:var(--paper);flex-direction:column;justify-content:space-between;min-height:78vh;padding:clamp(30px,5vw,80px);display:flex;position:sticky}.report+.report{margin-top:30vh}.report blockquote{max-width:1200px;font-family:var(--font-display);letter-spacing:-.06em;margin:0;font-size:clamp(48px,6.2vw,104px);font-weight:900;line-height:.95}.report p{letter-spacing:.12em;align-self:flex-end;font-size:10px;font-weight:800}.okinawa{background:var(--ink);min-height:115vh;color:var(--paper);position:relative;overflow:hidden}.okinawa img{object-fit:cover;filter:saturate(.75)contrast(1.08);width:100%;height:100%;animation:16s ease-in-out infinite alternate slow-zoom;position:absolute;inset:0;transform:scale(1.08)}@keyframes slow-zoom{to{transform:scale(1)}}.okinawa:after{content:"";background:linear-gradient(90deg,#00000038,#0000 60%);position:absolute;inset:0}.okinawa h2{z-index:1;bottom:8vh;left:var(--pad);font-family:var(--font-display);letter-spacing:-.08em;margin:0;font-size:clamp(90px,14vw,220px);font-weight:900;line-height:.75;position:absolute}.okinawa p{z-index:1;right:var(--pad);text-align:right;margin:0;font-size:9px;line-height:1.7;position:absolute;bottom:5vh}.specs{grid-template-columns:44fr 56fr;align-items:center;gap:7vw;min-height:120vh;display:grid}.specs__image{height:88vh;margin:0;position:relative;overflow:hidden}.specs__image img{object-fit:cover;width:100%;height:100%}.specs__data h2{margin:24px 0 56px;font-size:clamp(56px,7vw,110px)}.specs__data dl{border-top:1px solid var(--ink);margin:0}.specs__data dl>div{border-bottom:1px solid var(--ink);grid-template-columns:42% 58%;padding:12px 0;display:grid}.specs__data dt,.specs__data dd{letter-spacing:.08em;margin:0;font-size:11px;font-weight:800}.specs__data .fineprint{text-transform:none;margin-top:36px;line-height:1.8}.faq{grid-template-columns:30% 70%;min-height:110vh;display:grid}.faq__heading{align-self:start;position:sticky;top:8vh}.faq__heading h2{margin-top:24px;font-size:clamp(48px,5vw,84px)}.faq__list{border-top:1px solid #ffffff4d}.faq-item{border-bottom:1px solid #ffffff4d}.faq-item h3{margin:0}.faq-item button{text-align:left;background:0 0;border:0;justify-content:space-between;gap:20px;width:100%;padding:28px 0;font-size:clamp(17px,2vw,30px);font-weight:800;display:flex}.faq-item button b{font-weight:400}.faq-answer{grid-template-rows:0fr;transition:grid-template-rows .45s;display:grid}.faq-answer>p{min-height:0;margin:0;font-size:16px;font-weight:700;line-height:1.8;overflow:hidden}.faq-item.is-open .faq-answer{grid-template-rows:1fr}.faq-item.is-open .faq-answer>p{padding-bottom:32px}.faq-answer .faq-no{font-family:var(--font-display);letter-spacing:-.07em;font-size:clamp(80px,12vw,180px);font-weight:900;line-height:.8}.final-cta{height:340vh;position:relative}.final-cta__sticky{height:100vh;padding:var(--pad);place-items:center;display:grid;position:sticky;top:0;overflow:hidden}.final-cta__phrases{padding:var(--pad);place-items:center;display:grid;position:absolute;inset:0}.final-cta__phrases h2{max-width:92vw;font-family:var(--font-display);letter-spacing:-.075em;text-align:center;opacity:0;margin:0;font-size:clamp(66px,11vw,180px);font-weight:900;line-height:.82;transition:opacity .45s,transform .65s;position:absolute;transform:translateY(80px)}.final-cta__phrases h2.is-current{opacity:1;transform:translateY(0)}.summon-button{--escape:0px;z-index:2;aspect-ratio:1.78;background:var(--acid);width:clamp(240px,28vw,420px);color:var(--ink);font-family:var(--font-display);letter-spacing:-.06em;text-align:center;transform:translateX(var(--escape));place-items:center;font-size:clamp(42px,5vw,80px);font-weight:900;line-height:.78;transition:transform .26s cubic-bezier(.2,.8,.2,1),background .18s;display:grid;position:absolute;bottom:6vh}.summon-button:hover{background:var(--paper)}.footer{grid-template-columns:1.4fr .7fr .6fr;align-content:space-between;gap:30px;min-height:86vh;display:grid}.footer__brand{font-family:var(--font-display);letter-spacing:-.075em;font-size:clamp(72px,11vw,180px);font-weight:900;line-height:.76}.footer__links{flex-direction:column;gap:12px;font-size:13px;font-weight:800;display:flex}.footer>p{letter-spacing:.1em;text-align:right;margin:0;font-size:10px;font-weight:800;line-height:1.8}.footer>h2{font-family:var(--font-display);letter-spacing:-.065em;grid-column:1/-1;margin:18vh 0 0;font-size:clamp(44px,7.5vw,120px);font-weight:900;line-height:.86}.summoning-overlay{z-index:2000;background:var(--acid);color:var(--ink);visibility:hidden;opacity:0;place-items:center;font-size:clamp(28px,5vw,76px);font-weight:900;transition:opacity .18s,visibility .18s;display:grid;position:fixed;inset:0}.summoning-overlay.is-visible{visibility:visible;opacity:1}@media (max-width:1024px){.hero__visual{width:34vw;right:6vw}.services__body{grid-template-columns:minmax(0,1fr) 34vw}.specs{gap:5vw}.faq{grid-template-columns:38% 62%}}@media (max-width:768px){body,button{cursor:auto}.cursor,.header-meta{display:none}.site-header{grid-template-columns:1fr auto;gap:16px;padding-top:18px}.brand{max-width:190px}.hero{min-height:680px;padding-top:20vh}.hero__title{font-size:clamp(64px,19vw,130px)}.hero__visual{width:62vw;min-width:0;height:56vh;top:28vh;right:-6vw}.hero__tag,.hero__scroll{max-width:40vw;bottom:22px}.manifesto h2{font-size:clamp(70px,22vw,130px)}.manifesto p{max-width:80%}.fact-grid{grid-template-columns:1fr}.fact{min-height:28vh}.fact h3{font-size:clamp(58px,20vw,100px)}.split-section{grid-template-columns:minmax(0,1fr);min-height:auto;padding-block:12vh}.split-section>*,.specs>*,.faq>*,.service>*{min-width:0}.campaign__image{width:100%;height:66vh}.campaign__copy h2{overflow-wrap:anywhere;font-size:clamp(50px,14vw,86px)}.campaign__copy>p:not(.jp){margin-bottom:6vh}.section-heading{flex-direction:column;align-items:flex-start}.section-heading h2{font-size:clamp(58px,17vw,100px)}.services__body{display:block}.service-preview{display:none}.service{grid-template-columns:34px 1fr;min-height:auto}.service h3{overflow-wrap:anywhere}.service strong{white-space:normal;grid-column:2}.service small{grid-column:2}.service__mobile-image{aspect-ratio:4/3;object-fit:cover;grid-column:1/-1;width:100%;margin-top:18px;display:block}.summon{min-height:auto}.summon>h2{max-width:none;font-size:clamp(62px,18vw,108px)}.rolling-stone{font-size:38vw;top:5vh}.summon__steps{grid-template-columns:1fr}.summon__steps article,.summon__steps article:first-child{border-left:1px solid var(--ink);border-bottom:1px solid var(--ink);min-height:230px}.summon__steps span{font-size:30vw}.summon__note{text-align:left}.reports{min-height:220vh}.report{min-height:68vh}.report blockquote{font-size:clamp(44px,12vw,70px)}.okinawa{min-height:100vh}.okinawa img{object-position:58% center}.okinawa h2{font-size:clamp(82px,24vw,140px);bottom:14vh}.specs{grid-template-columns:minmax(0,1fr);min-height:auto}.specs__image{width:100%;height:76vh}.specs__data h2{overflow-wrap:anywhere;font-size:clamp(44px,12vw,78px)}.faq{grid-template-columns:minmax(0,1fr);min-height:auto}.faq__heading{margin-bottom:8vh;position:static}.faq__heading h2{font-size:clamp(48px,14vw,82px)}.final-cta__phrases h2{font-size:clamp(58px,18vw,110px)}.summon-button{width:min(82vw,380px);--escape:0px!important}.footer{grid-template-columns:1fr 1fr;min-height:90vh}.footer__brand{grid-column:1/-1;font-size:clamp(72px,21vw,122px)}.footer>p{text-align:left}}@media (max-width:430px){.about,.services,.summon,.reports,.specs,.faq,.footer{padding-block:9vh}.site-menu a{font-size:15vw}.hero__scroll{text-align:right;font-size:8px}.hero__visual figcaption{font-size:7px}.service h3{font-size:12.5vw}.okinawa p{bottom:4vh}.specs__data dl>div{grid-template-columns:48% 52%}.specs__data dt,.specs__data dd{font-size:9px}.footer>h2{margin-top:10vh}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}[data-reveal],.hero__title span,.hero__visual{opacity:1!important;transform:none!important}.manifesto{height:auto}.manifesto__sticky{height:auto;position:static}.manifesto__step{opacity:1;min-height:75vh;position:static;transform:none}.final-cta{height:auto}.final-cta__sticky{min-height:100vh;position:static}.final-cta__phrases{display:block;position:static}.final-cta__phrases h2{opacity:1;margin:24px 0;position:static;transform:none}.summon-button{margin-top:40px;position:static;transform:none!important}.cursor{display:none}body,button{cursor:auto}}

/* ============================================================
   RENTAL GO OJISAN — fix pack
   ============================================================ */

/* --- 1. 表示用フォントを自前ホスト -----------------------------
   Arial Narrow は iOS / Android に存在しないため、端末ごとに
   別のフォントで組まれて幅が崩れていた。
   Archivo Variable (wdth 62-125 / wght 100-900) を読み込む。
   既存の font-stretch:75% がそのまま効く。
   ------------------------------------------------------------ */
@font-face {
  font-family: "Archivo Variable";
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  font-stretch: 62% 125%;
  src: url("/fonts/archivo-var.woff2") format("woff2-variations");
}

:root {
  --font-display: "Archivo Variable", "Arial Narrow", "Helvetica Neue", Arial, sans-serif;
}

/* --- 2. iOS Safari のアドレスバーで 100vh がズレる ------------- */
@supports (height: 100dvh) {
  .okinawa           { min-height: 100dvh; }
  .final-cta__sticky { min-height: 100dvh; }
}

/* ============================================================
   MOBILE ( <= 768px )
   ============================================================ */
@media (max-width: 768px) {

  /* --- 3. HERO: 写真がタイトルを覆っていた --------------------
     absolute をやめて縦積みに。黒背景の上に黒文字が乗らない */
  .hero {
    height: auto;
    min-height: 0;
    padding: 13vh var(--pad) 40px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
  }
  .hero__title {
    width: auto;
    font-size: clamp(52px, 15.5vw, 118px);
  }
  .hero__visual {
    position: static;
    width: 100%;
    min-width: 0;
    height: 58vh;
    margin-top: 28px;
    transform: none;
  }
  .hero__visual figcaption { font-size: 10px; letter-spacing: .04em; }
  .hero__tag,
  .hero__scroll {
    position: static;
    max-width: none;
    margin-top: 20px;
    font-size: 11px;
  }
  .hero__scroll { align-self: flex-start; }

  /* --- 4. "BASED IN OKINAWA." が右端で切れていた -------------- */
  .okinawa h2 {
    font-size: clamp(52px, 15vw, 110px);
    right: var(--pad);
    bottom: 12vh;
  }

  /* --- 5. "PROFESSIONAL" が PROFESSION / AL に割れていた ------
     overflow-wrap:anywhere を解除し、収まるサイズに落とす */
  .campaign__copy h2,
  .specs__data h2,
  .section-heading h2,
  .summon > h2,
  .faq__heading h2,
  .service h3 {
    overflow-wrap: normal;
    word-break: keep-all;
    hyphens: none;
  }
  .campaign__copy h2  { font-size: clamp(38px, 11vw,  86px); }
  .specs__data h2     { font-size: clamp(34px, 10vw,  78px); }
  .section-heading h2 { font-size: clamp(46px, 14vw, 100px); }
  .service h3         { font-size: clamp(30px, 9.5vw, 82px); }
  .faq__heading h2    { font-size: clamp(40px, 12vw,  82px); }
  .summon > h2        { font-size: clamp(50px, 15vw, 108px); }
  .report blockquote  { font-size: clamp(30px, 8.5vw, 70px); line-height: 1.28; }

  /* --- 6. 日本語が小さすぎた（実質こちらが情報） -------------- */
  .manifesto p        { font-size: 16px; line-height: 1.9; }
  .fact small         { font-size: 13px; line-height: 1.75; padding: 16px; }
  .service p,
  .service small      { font-size: 12px; letter-spacing: .06em; }
  .summon__steps p    { font-size: 15px; line-height: 1.8; }
  .campaign__copy .jp { font-size: 15px; line-height: 1.9; }
  figcaption          { font-size: 10px; }
  .eyebrow            { font-size: 11px; }

  /* --- 7. タップ領域が 17〜20px しかなかった (推奨 44px) ------ */
  .brand,
  .menu-button,
  .hero__scroll,
  .footer a,
  .site-menu a {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
  }
  .site-header { align-items: center; }

  /* --- 8. 縦が 21 画面ぶんあった。演出は残しつつ圧縮 --------- */
  .manifesto { height: 220vh; }
  .reports   { min-height: 170vh; }
  .final-cta { height: 240vh; }
  .okinawa   { min-height: 82vh; }
  .footer    { min-height: 70vh; }
}

@media (max-width: 430px) {
  /* SPECS 表が 9px だった。一番読ませたい場所なので戻す */
  .specs__data dt,
  .specs__data dd          { font-size: 11px; }
  .hero__scroll            { font-size: 10px; text-align: left; }
  .hero__visual figcaption { font-size: 10px; }
  .service h3              { font-size: 9.5vw; }
}

/* --- 9. .fact / final-cta の見出しが箱の中で切れていた ---------
   （overflow:hidden で隠れていたため画面幅の判定では出なかった） */
@media (max-width: 768px) {
  .fact h3 {
    font-size: clamp(34px, 13vw, 100px);
    max-width: 100%;
  }
  .final-cta__phrases h2 {
    font-size: clamp(44px, 15vw, 110px);
    overflow-wrap: normal;
    word-break: keep-all;
  }
}

/* --- 10. 追加コピー --------------------------------------- */
.campaign__copy .amateur-note {
  letter-spacing: .04em;
  opacity: .55;
  margin-top: 16px;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.8;
}
.reports__note {
  letter-spacing: .12em;
  text-align: right;
  opacity: .45;
  margin: 6vh 0 0;
  font-size: 10px;
  font-weight: 800;
}
@media (max-width: 768px) {
  .campaign__copy .amateur-note { margin-top: 14px; font-size: 12px; }
  .reports__note { text-align: left; margin-top: 4vh; }
}

/* --- 11. 口コミが2行になると文字が重なっていた（元からのバグ）---
   line-height:.95 は欧文用。日本語は全角ぶん高さが要る */
.report blockquote { line-height: 1.25; }
@media (max-width: 768px) {
  .report blockquote { line-height: 1.28; }
}

/* --- 12. 縦長写真で頭が切れる ------------------------------
   写真の被写体は上端 10.8〜12.2% / 水平中心 54〜58% にいる。
   object-position が center だと、縦にはみ出す画面幅で
   頭側が均等に削られて切れてしまう。上寄せにする。 */
.service-preview img,
.specs__image img {
  object-position: 54% 25%;
}
@media (max-width: 768px) {
  /* 4:3 の枠に 2:3 の縦写真。center だと頭が完全に消える */
  .service__mobile-image {
    object-position: 54% 15%;
  }
}
