
    :root { color-scheme: light; --navy:#102c3b; --blue:#315d72; --mint:#137b68; --mint-dark:#0d6153; --ice:#f1f5f4; --ink:#17242c; --muted:#56636a; --line:#d6dfdf; --white:#fff; --shadow:0 14px 36px rgba(16,44,59,.09); }
    * { box-sizing:border-box; }
    html { scroll-behavior:smooth; }
    body { margin:0; color:var(--ink); background:#fff; font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic UI","Yu Gothic",Meiryo,sans-serif; font-size:16px; line-height:1.75; letter-spacing:.01em; }
    a { color:inherit; }
    img { display:block; max-width:100%; }
    button,input,select,textarea { font:inherit; }
    .wrap { width:min(1120px,calc(100% - 40px)); margin:auto; }
    header { position:sticky; top:0; z-index:20; background:rgba(255,255,255,.97); border-bottom:1px solid var(--line); backdrop-filter:blur(10px); }
    .head { min-height:70px; display:flex; align-items:center; justify-content:space-between; gap:16px; }
    .brand { text-decoration:none; font-weight:900; letter-spacing:.03em; color:var(--navy); }
    .brand small { display:block; color:var(--muted); font-size:.72rem; font-weight:600; letter-spacing:.08em; }
    .head-actions { display:flex; align-items:center; gap:10px; }
    .btn { display:inline-flex; min-height:48px; align-items:center; justify-content:center; gap:8px; padding:10px 20px; border:1px solid transparent; border-radius:9px; text-decoration:none; font-weight:800; cursor:pointer; transition:.2s ease; }
    .btn:hover { transform:translateY(-1px); }
    .btn-primary { background:var(--mint); color:#fff; box-shadow:0 7px 18px rgba(13,97,83,.18); }
    .btn-primary:hover { background:var(--mint-dark); }
    .btn:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible { outline:3px solid #f4bd3f; outline-offset:3px; }
    .btn-secondary { background:#fff; border-color:var(--line); color:var(--navy); }
    .hero { background:linear-gradient(112deg,#102c3b 0%,#173b48 100%); color:#fff; overflow:hidden; }
    .hero-grid { min-height:640px; display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); align-items:center; gap:54px; padding:74px 0; }
    .eyebrow { display:inline-flex; align-items:center; gap:9px; margin:0 0 18px; color:#9df1db; font-weight:800; font-size:.88rem; letter-spacing:.1em; }
    .eyebrow::before { content:""; width:34px; height:2px; background:currentColor; }
    h1 { margin:0; font-size:clamp(2.25rem,4.7vw,4.25rem); line-height:1.12; letter-spacing:-.045em; }
    .lead { margin:22px 0 28px; max-width:650px; color:#dbeaf3; font-size:clamp(1rem,2vw,1.22rem); }
    .hero-actions { display:flex; flex-wrap:wrap; gap:12px; }
    .hero .btn-secondary { color:#fff; border-color:rgba(255,255,255,.34); background:rgba(255,255,255,.08); }
    .proof { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:34px; }
    .proof div { padding:15px 13px; border-top:1px solid rgba(255,255,255,.28); background:transparent; }
    .proof strong { display:block; font-size:1.18rem; }
    .proof span { color:#c6d9e4; font-size:.79rem; }
    .proof-note { margin:10px 0 0; color:#a9c1cf; font-size:.75rem; }
    .mobile-only { display:none; }
    .mobile-offer { display:none; }
    .mobile-promises { display:none; }
    .hero-visual { position:relative; width:100%; max-width:520px; min-width:0; justify-self:end; }
    .hero-visual::before { display:none; }
    .hero-visual img { position:relative; width:100%; height:auto; object-fit:contain; border-radius:7px; box-shadow:0 22px 54px rgba(0,0,0,.27); }
    .caption { position:relative; width:calc(100% - 28px); margin:-8px auto 0; padding:13px 16px; border-radius:0 0 7px 7px; background:#fff; color:var(--navy); box-shadow:var(--shadow); font-weight:800; line-height:1.45; }
    .mobile-work { display:none; }
    .mobile-owner { display:none; }
    section { padding:78px 0; }
    .section-head { max-width:700px; margin-bottom:34px; }
    h2 { margin:0 0 12px; color:var(--navy); font-size:clamp(1.8rem,3.8vw,3rem); line-height:1.25; letter-spacing:-.035em; }
    .sub { margin:0; color:var(--muted); }
    .reasons { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
    .card { padding:28px; border:1px solid var(--line); border-radius:10px; background:#fff; box-shadow:none; }
    .num { display:block; margin-bottom:15px; color:var(--mint); font-size:.84rem; font-weight:900; letter-spacing:.12em; }
    h3 { margin:0 0 8px; color:var(--navy); font-size:1.25rem; }
    .card p { margin:0; color:var(--muted); }
    .price-section { background:var(--ice); }
    .price-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:22px; align-items:start; }
    .price-card { overflow:hidden; border:1px solid var(--line); border-radius:10px; background:#fff; box-shadow:var(--shadow); }
    .price-row { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:22px 26px; border-bottom:1px solid var(--line); }
    .price-row:last-child { border:0; }
    .price-row strong { color:var(--navy); }
    .price-row b { white-space:nowrap; color:var(--mint); font-size:1.25rem; }
    .note { padding:24px; border-radius:10px; background:var(--navy); color:#dbeaf3; }
    .note h3 { color:#fff; }
    .note ul { margin:14px 0 0; padding-left:1.25em; }
    .steps { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; counter-reset:step; }
    .step { position:relative; padding:24px 20px; border-top:2px solid var(--mint); background:#f8fafb; }
    .step::before { counter-increment:step; content:"0" counter(step); display:block; margin-bottom:10px; color:var(--mint); font-weight:900; }
    .review-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
    blockquote { margin:0; }
    .stars { color:#f5a623; letter-spacing:.1em; }
    .review-card footer { margin-top:16px; color:var(--muted); font-size:.86rem; }
    .review-source { display:inline-block; margin-top:8px; color:var(--blue); font-weight:750; text-underline-offset:3px; }
    .review-more { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-top:24px; padding:18px 22px; border:1px solid var(--line); border-radius:8px; background:#fff; }
    .review-more p { margin:0; color:var(--muted); }
    .review-more a { flex:none; color:var(--blue); font-weight:850; text-underline-offset:4px; }
    .area-box { columns:3; column-gap:34px; padding:28px; border:1px solid var(--line); border-radius:8px; background:#fff; }
    .area-box span { display:block; break-inside:avoid; padding:5px 0; color:#394955; }
    .area-primary { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:18px; }
    .area-primary span { padding:8px 14px; border-radius:4px; background:var(--ice); color:var(--navy); font-weight:800; }
    .area-details { border:0; }
    .area-details summary { display:inline-flex; padding:12px 0; color:var(--blue); text-decoration:underline; text-underline-offset:4px; }
    .booking-guide { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:30px; }
    .booking-guide .card { box-shadow:none; }
    .booking-guide strong { display:block; margin-bottom:5px; color:var(--mint-dark); }
    .reserve { background:var(--navy); color:#fff; }
    .reserve h2 { color:#fff; }
    .reserve .sub { color:#bfd0dc; }
    .reserve-direct { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-top:28px; padding:20px; border:1px solid rgba(255,255,255,.22); border-radius:8px; background:rgba(255,255,255,.05); }
    .reserve-direct p { margin:0; color:#d6e6ee; }
    .reserve-direct .btn { flex:none; }
    .form-toggle { display:none; }
    .form-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; margin-top:30px; }
    label { display:grid; gap:7px; font-weight:750; }
    label.full { grid-column:1/-1; }
    input,select,textarea { width:100%; min-height:52px; padding:12px 14px; border:1px solid #9fb2bf; border-radius:6px; background:#fff; color:var(--ink); }
    textarea { min-height:120px; resize:vertical; }
    .form-actions { grid-column:1/-1; display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
    .form-help { color:#bfd0dc; font-size:.87rem; }
    .status { display:none; grid-column:1/-1; padding:14px 16px; border-radius:12px; background:#e8fff8; color:#075a47; font-weight:700; }
    .faq { max-width:820px; }
    details { border-top:1px solid var(--line); }
    details:last-child { border-bottom:1px solid var(--line); }
    summary { padding:20px 4px; color:var(--navy); font-weight:800; cursor:pointer; }
    details p { margin:0 4px 22px; color:var(--muted); }
    .owner { display:grid; grid-template-columns:180px 1fr; gap:26px; align-items:center; margin-top:36px; }
    .owner img { width:180px; height:190px; object-fit:cover; border-radius:8px; border:0; }
    .policy-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
    .policy-grid h3 { font-size:1.05rem; }
    .policy-grid p { margin:0; color:var(--muted); }
    footer.site-footer { padding:38px 0 98px; background:#071827; color:#b9c9d2; }
    .footer-row { display:flex; justify-content:space-between; gap:30px; }
    .footer-links { display:flex; flex-wrap:wrap; gap:16px; margin-top:12px; font-size:.9rem; }
    .mobile-bar { display:none; }
    @media (max-width:820px) {
      .wrap { width:min(100% - 28px,680px); }
      .head-actions .btn-secondary { display:none; }
      .hero-grid { min-height:auto; grid-template-columns:1fr; gap:48px; padding:54px 0 72px; }
      .hero-visual { max-width:560px; justify-self:center; }
      .reasons,.review-grid,.booking-guide { grid-template-columns:1fr; }
      .price-grid { grid-template-columns:1fr; }
      .steps { grid-template-columns:1fr 1fr; }
      .area-box { columns:2; }
    }
    @media (max-width:540px) {
      body { padding-bottom:calc(78px + env(safe-area-inset-bottom)); }
      .head { min-height:62px; }
      .brand { font-size:.98rem; }
      .brand small { display:none; }
      .head-actions { display:none; }
      section { padding:54px 0; }
      .hero-grid { display:block; padding:28px 0 32px; }
      .desktop-only,.hero-visual { display:none; }
      .mobile-only { display:block; }
      .eyebrow { margin-bottom:10px; font-size:.75rem; letter-spacing:.06em; }
      .eyebrow::before { width:22px; }
      h1.mobile-only { font-size:1.8rem; line-height:1.28; letter-spacing:-.035em; }
      .lead { margin:12px 0 17px; font-size:.94rem; line-height:1.65; }
      .mobile-offer { display:block; padding:17px; border:1px solid rgba(255,255,255,.22); border-radius:9px; background:#fff; color:var(--ink); box-shadow:0 12px 28px rgba(0,0,0,.17); }
      .mobile-price { display:flex; align-items:flex-end; justify-content:space-between; gap:10px; }
      .mobile-price span { color:var(--muted); font-size:.88rem; font-weight:750; }
      .mobile-price strong { color:var(--navy); font-size:1.75rem; line-height:1; letter-spacing:-.04em; }
      .mobile-pair { margin:8px 0 12px; color:var(--mint-dark); font-size:.98rem; font-weight:850; text-align:right; }
      .mobile-trust { display:grid; grid-template-columns:repeat(3,1fr); margin:0 0 14px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
      .mobile-trust span { padding:9px 4px; color:var(--navy); font-size:.78rem; font-weight:800; text-align:center; }
      .mobile-trust span + span { border-left:1px solid var(--line); }
      .mobile-trust .rating { color:#e86f13; }
      .mobile-promises { display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin:0 0 13px; }
      .mobile-promises span { padding:3px 5px; color:var(--mint-dark); font-size:.72rem; font-weight:850; text-align:center; }
      .mobile-promises span + span { border-left:1px solid var(--line); }
      .mobile-offer .btn { width:100%; min-height:56px; font-size:1.05rem; }
      .mobile-offer small { display:block; margin-top:8px; color:var(--muted); font-size:.76rem; text-align:center; }
      .reasons-section { padding-top:22px; }
      .mobile-work { display:block; margin:0 0 12px; }
      .mobile-work img { width:100%; height:auto; border:1px solid var(--line); border-radius:6px; box-shadow:none; }
      .mobile-work figcaption { margin-top:8px; color:var(--muted); font-size:.82rem; text-align:center; }
      .mobile-owner { display:grid; grid-template-columns:58px 1fr; gap:12px; align-items:center; margin:0 0 40px; padding:12px 14px; border:1px solid var(--line); border-radius:6px; background:#fff; }
      .mobile-owner img { width:58px; height:58px; object-fit:cover; border-radius:4px; }
      .mobile-owner p { margin:0; line-height:1.45; }
      .mobile-owner strong,.mobile-owner span { display:block; }
      .mobile-owner strong { color:var(--navy); font-size:.94rem; }
      .mobile-owner span { margin-top:3px; color:var(--muted); font-size:.78rem; }
      .card { padding:22px; }
      .reasons { gap:10px; }
      .reasons .card { display:grid; grid-template-columns:34px 1fr; column-gap:11px; padding:16px 2px; border-width:1px 0 0; border-radius:0; }
      .reasons .card:last-child { border-bottom:1px solid var(--line); }
      .reasons .num { grid-row:1/3; margin:2px 0 0; font-size:.78rem; }
      .reasons h3 { margin:0; font-size:1.08rem; }
      .reasons p { grid-column:2; font-size:.92rem; }
      .section-head { margin-bottom:25px; }
      h2 { font-size:1.75rem; }
      .price-row { align-items:flex-start; padding:18px; }
      .price-row strong { font-size:.92rem; }
      .price-row b { font-size:1.08rem; }
      .hero-visual::before { display:none; }
      .caption { width:calc(100% - 28px); margin-top:-14px; }
      .steps,.form-grid { grid-template-columns:1fr; }
      .steps { gap:9px; }
      .step { padding:14px 16px; }
      .step::before { display:inline; margin-right:9px; }
      .step h3 { display:inline; font-size:1.05rem; }
      .step p { margin:5px 0 0; font-size:.92rem; }
      label.full,.form-actions,.status { grid-column:auto; }
      .area-box { columns:1; }
      .area-box { padding:14px 18px; }
      .area-primary { gap:7px; margin-bottom:8px; }
      .area-primary span { padding:6px 10px; font-size:.84rem; }
      .booking-guide { gap:9px; }
      .booking-guide .card,.policy-grid .card { padding:16px 18px; }
      .owner { grid-template-columns:1fr; text-align:center; }
      .owner img { width:150px; height:165px; margin:auto; }
      .footer-row,.review-more { display:block; }
      .review-more a { display:inline-block; margin-top:10px; }
      .policy-grid { grid-template-columns:1fr; }
      .reserve-direct { display:block; margin-top:22px; padding:17px; }
      .reserve-direct .btn { width:100%; margin-top:13px; }
      .form-toggle { display:flex; width:100%; margin-top:18px; color:#fff; border-color:rgba(255,255,255,.34); background:rgba(255,255,255,.08); }
      .form-grid { display:none; margin-top:18px; }
      .form-grid.is-open { display:grid; }
      .mobile-bar .btn-primary { font-size:.95rem; }
      .mobile-bar { position:fixed; z-index:30; right:0; bottom:0; left:0; display:grid; grid-template-columns:1fr; gap:8px; padding:9px 12px calc(9px + env(safe-area-inset-bottom)); border-top:1px solid var(--line); background:#fff; }
      .mobile-bar .btn { min-height:50px; padding:8px 12px; }
    }
  
:target{scroll-margin-top:130px}.skip-link{position:absolute;left:10px;top:-80px;z-index:100;background:white;color:#102c3b;padding:10px}.skip-link:focus{top:10px}.text-link{color:#315d72;text-underline-offset:4px}.site-nav{display:flex;gap:16px;flex-wrap:wrap;font-size:.88rem;padding:0 0 12px}.site-nav a{text-decoration:none;color:#315d72;font-weight:700}.guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.guide-grid a.card{display:block;text-decoration:none}.guide-grid a.card:hover{border-color:#137b68}.guide-grid small{color:#137b68;font-weight:800}.article{max-width:850px;margin:auto;padding:42px 0 60px}.article h1{font-size:clamp(1.85rem,4vw,2.8rem);line-height:1.35;color:#102c3b;letter-spacing:-.025em}.article h2{font-size:1.55rem;margin-top:38px}.article h3{font-size:1.15rem;margin-top:22px}.article p,.article li{line-height:1.95}.article .intro{font-size:1.1rem;color:#394955}.article .byline{font-size:.82rem;color:#56636a}.article figure{margin:24px 0}.article figcaption{font-size:.83rem;color:#56636a}.article img{width:100%;height:auto;border-radius:8px}.article .callout,.price-explain{padding:20px 22px;background:#f1f5f4;border-left:4px solid #137b68;border-radius:4px;margin:24px 0}.table-scroll{overflow-x:auto;margin:20px 0}table{width:100%;border-collapse:collapse;font-size:.94rem}th,td{border:1px solid #d6dfdf;padding:12px;text-align:left;vertical-align:top}th{background:#f1f5f4;color:#102c3b}caption{text-align:left;font-weight:800;padding-bottom:9px}.message-output{white-space:pre-wrap}.reserve .form-grid{display:grid}.reserve .form-help{display:block;margin:12px 0}.reserve .status{display:block;margin-top:20px}.reserve .status[hidden]{display:none}.reserve .status textarea{min-height:230px;font-size:.9rem;margin:10px 0}.reserve fieldset{border:0;margin:0;padding:0;min-width:0}.reserve .status h3{color:#102c3b}.reserve .status .btn{margin:4px}.price-explain p{margin:8px 0}.mobile-offer .proof-note{font-size:.7rem;color:#56636a}.breadcrumb{font-size:.85rem;margin-bottom:20px}.disclosure{font-size:.88rem;color:#56636a}.regional-section{border-top:1px solid #d6dfdf;padding:12px 0}.sticky-text{font-size:.72rem;margin:0;text-align:center;color:#56636a}.article .related{border-top:1px solid #d6dfdf;margin-top:36px;padding-top:20px}.related li{margin-bottom:8px}.site-footer a{color:inherit}.reserve .form-actions{align-items:start}.reserve button{max-width:100%}.mobile-bar{padding-bottom:calc(9px + env(safe-area-inset-bottom))}@media(max-width:540px){.guide-grid{grid-template-columns:1fr}.site-nav{gap:14px;font-size:.8rem;white-space:nowrap;flex-wrap:nowrap;overflow-x:auto}.article{padding-top:25px}.article h2{font-size:1.38rem}.article table{font-size:.86rem}th,td{padding:10px}.reserve .form-actions .btn{width:100%}.reserve .form-grid{grid-template-columns:1fr}.hero-copy h1 .mobile-only{display:block}.hero-copy h1{font-size:1.8rem;line-height:1.28}.price-row b{white-space:normal;text-align:right}.mobile-bar .btn{min-height:48px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn{transition:none}}

.hero{padding:0}.review-grid:has(>.card:only-child){grid-template-columns:1fr}.form-grid .full{grid-column:1/-1}

.article-booking{margin:24px 0;padding:20px;background:#f1f5f4;border-radius:9px}.article-booking p{font-size:.9rem;margin:12px 0}@media(max-width:540px){.mobile-bar{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.mobile-bar .btn{font-size:.86rem}.article-booking .btn{width:100%}}
