@charset "UTF-8";
/* 2027 ヒライ おせちLP：html5_reset.css（テーマ共有のものとは別物）を同梱 */
/* http://meyerweb.com/eric/tools/css/reset/
   v2.0 | 20110126
   License: none (public domain)
*/

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
	text-decoration: none;
	list-style: none;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
	display: block;
}
body {
	line-height: 1;
}
ol, ul {
	list-style: none;
}
blockquote, q {
	quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
	content: '';
	content: none;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}
.inline-block {
    letter-spacing: -.40em; /* 文字間を詰めて隙間を削除する */
}
.inline-block li {
    letter-spacing: normal; /* 文字間を通常に戻す */
}
/* clearfix
------------------------------------------------------------*/
.clearfix:before,
.clearfix:after {
    content: " ";
    display: table;
}
.clearfix:after {
    clear: both;
}
.clearfix {
    *zoom: 1;
}
.gmap {
position: relative;
/* padding-bottom: 35%; */
/* padding-top: 30px; */
height: 500px;
overflow: hidden;
}
/* gmap
------------------------------------------------------------*/
.gmap iframe,
.gmap object,
.gmap embed {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
/* sp_tel
------------------------------------------------------------*/
.tel-link a {
	/* color: #fff;
	font-size: 35px;
	font-weight: bold; */
}
/* input
------------------------------------------------------------*/
/* iOSでのデフォルトスタイルをリセット */
input[type="submit"],
input[type="button"] {
  border-radius: 0;
  -webkit-box-sizing: content-box;
  -webkit-appearance: button;
  appearance: button;
  border: none;
  box-sizing: border-box;
  cursor: pointer;
	background-color: inherit;
}
input[type="submit"]::-webkit-search-decoration,
input[type="button"]::-webkit-search-decoration {
  display: none;
}
input[type="submit"]::focus,
input[type="button"]::focus {
  outline-offset: -2px;
}

input[type="text"] {
  border: 1px solid #dddddd;
  border-radius: 5px;
}
input[type="text"]:focus {
  border: 1px solid #cde5e2;
  outline: 0;
}
input[type="tel"] {
  border: 1px solid #dddddd;
  border-radius: 5px;
}
input[type="tel"]:focus {
  border: 1px solid #cde5e2;
  outline: 0;
}
input[type="email"] {
  border: 1px solid #dddddd;
  border-radius: 5px;
}
input[type="email"]:focus {
  border: 1px solid #cde5e2;
  outline: 0;
}
input[type="time"] {
  border: 1px solid #dddddd;
  border-radius: 5px;
}
input[type="time"]:focus {
  border: 1px solid #cde5e2;
  outline: 0;
}
input[type="number"] {
  border: 1px solid #dddddd;
  border-radius: 5px;
}
input[type="number"]:focus {
  border: 1px solid #cde5e2;
  outline: 0;
}
textarea {
  border: 1px solid #dddddd;
  border-radius: 5px;
}
textarea:focus {
  border: 1px solid #cde5e2;
  outline: 0;
}


/* ============================================================
   ヒライ おせちLP 2027
   デザイン基準幅 450px。p(N) = calc(N * var(--px))
   PC: --px = 1px（450px固定カラム） / SP(≤680px): --px = 100vw/450
   ============================================================ */
:root{
  --px: 1px;
  --red: #FD1E28;
  --darkred: #3D0E0E;
  --brown: #561111;
  --navy: #123248;
  --navy2: #174566;
  --gold1: #FFE258;
  --gold2: #CB9B0C;
  --cream: #FDE9CC;
  --ff-mincho: "Shippori Mincho", "Yu Mincho", "Hiragino Mincho ProN", serif;
  --ff-maru: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", sans-serif;
  --ff-gothic: "Noto Sans JP", "Hiragino Sans", "Yu Gothic", sans-serif;
}
*{box-sizing:border-box;}
html{font-size:62.5%; scroll-behavior:smooth; -webkit-text-size-adjust:100%; text-size-adjust:100%;}
body{
  min-width:320px;
  font-family: var(--ff-mincho);
  color:#000;
  line-height:1.4;
  background-color:#FFF8E9;
  background:url(../images/2027osechi/bg_hirai.webp) center center / cover no-repeat fixed #FFF8E9;
  -webkit-font-smoothing:antialiased;
}
img{width:100%; height:auto; vertical-align:bottom;}
a{color:inherit; text-decoration:none;}
a, a img{transition:opacity .25s ease;}
button{font:inherit; color:inherit;}
.hl{}

/* gradient text */
.txt-gold, .cta-area__lead, .sec-title--gold .sec-title__txt, .product__price .num{
  background-image: linear-gradient(114deg, #FFE258 2%, #CB9B0C 110%);
  -webkit-background-clip:text; background-clip:text;
  color:transparent; -webkit-text-fill-color:transparent;
}

/* ============================================================
   レイアウト（昨年踏襲：PC=左固定メニュー＋右450pxカラム）
   ============================================================ */
.contents{
  width:calc(450 * var(--px));
  margin-left:auto; margin-right:0;
  position:relative; right:17%;
  background:#fff;
  overflow:hidden;
  container-type:inline-size;
}
.contents > *{--px: calc(100cqw / 450);}
.sp-logo{display:none;}
.menu-ashirai{width:55%; bottom:-4%; left:0; z-index:-1; position:fixed; pointer-events:none;}
.sp-cta{display:none;}
.sp_menu_btn button{display:none;}

/* ------------------------------------------------------------
   メニュー
   ------------------------------------------------------------ */
.menu{
  --px: calc(min(30vw, 420px) / 400);
  position:fixed; top:50%; left:8vw;
  width:30%; max-width:420px; transform:translateY(-50%);
  max-height:100vh; overflow-y:auto; scrollbar-width:none;
  z-index:20;
}
.menu::-webkit-scrollbar{display:none;}
.menu nav{width:100%;}
#top-logo{width:calc(248 * var(--px)); margin:0 auto calc(20 * var(--px));}
#top-logo a{display:block;}
.cta-bar{
  display:block; position:relative;
  height:calc(80 * var(--px)); border-radius:calc(40 * var(--px));
  background:var(--red); color:#fff;
  text-align:center; padding-top:calc(6 * var(--px));
}
.cta-bar__sub{display:block; font-family:var(--ff-mincho); font-weight:700; font-size:calc(18 * var(--px)); line-height:calc(24 * var(--px)); color:#F3E18B;}
.cta-bar__main{display:block; font-family:var(--ff-mincho); font-weight:700; font-size:calc(32.9 * var(--px)); line-height:calc(41 * var(--px)); color:#fff;}
.cta-bar__arrow{
  position:absolute; right:calc(20 * var(--px)); top:50%; transform:translateY(-50%);
  width:calc(30 * var(--px)); height:calc(30 * var(--px)); border-radius:50%; background:#fff;
}
.cta-bar__arrow::after{
  content:""; position:absolute; left:50%; top:50%;
  width:calc(8 * var(--px)); height:calc(8 * var(--px));
  border-top:calc(2 * var(--px)) solid var(--red); border-right:calc(2 * var(--px)) solid var(--red);
  transform:translate(-65%,-50%) rotate(45deg);
}
.menu h3{font-family:var(--ff-mincho); font-weight:700; font-size:calc(22 * var(--px)); color:var(--red); text-align:center; margin:calc(19 * var(--px)) 0 calc(17 * var(--px));}
.nav_list > li{margin-bottom:calc(10 * var(--px));}
.nav_list > li:last-child{margin-bottom:0;}
.nav-acc{background:#fff; border:1px solid var(--red); border-radius:calc(20 * var(--px));}
.nav-acc:not(.is-open){border-radius:calc(80 * var(--px));}
.nav-acc__head, .nav-link{
  display:flex; align-items:center; justify-content:center;
  width:100%; height:calc(43 * var(--px)); padding:0 calc(30 * var(--px));
  background:none; border:0; cursor:pointer;
  font-family:var(--ff-mincho); font-weight:700; font-size:calc(18 * var(--px)); color:#000;
  position:relative; text-align:center;
}
.nav-link{height:calc(45 * var(--px)); background:#fff; border:1px solid var(--red); border-radius:calc(80 * var(--px));}
.nav-acc__head::after, .nav-link::after{
  content:""; position:absolute; right:calc(22 * var(--px)); top:50%;
  width:calc(7 * var(--px)); height:calc(7 * var(--px));
  border-right:1px solid #E60012; border-bottom:1px solid #E60012;
  transform:translateY(-70%) rotate(45deg); transition:transform .25s ease;
}
.nav-acc:not(.is-open) .nav-acc__head::after{transform:translateY(-50%) rotate(-45deg);}
.nav-acc__body{padding:0 calc(24 * var(--px)) calc(12 * var(--px));}
.nav-acc:not(.is-open) .nav-acc__body{display:none;}
.nav-pills{display:grid; grid-template-columns:1fr 1fr; gap:calc(8 * var(--px)) calc(13 * var(--px));}
.nav-pills a{
  display:flex; align-items:center; justify-content:center;
  height:calc(34 * var(--px)); border-radius:999px; background:var(--red); color:#fff;
  font-family:var(--ff-mincho); font-weight:700; font-size:calc(16 * var(--px));
}

/* ============================================================
   共通パーツ
   ============================================================ */
/* セクションタイトル（市松） */
.sec-title{
  position:relative; height:calc(129 * var(--px));
  --chk: rgba(255,232,165,.1);
  background-image:
    repeating-linear-gradient(90deg, var(--chk) 0 calc(24 * var(--px)), transparent calc(24 * var(--px)) calc(47 * var(--px))),
    repeating-linear-gradient(90deg, var(--chk) 0 calc(24 * var(--px)), transparent calc(24 * var(--px)) calc(47 * var(--px))),
    repeating-linear-gradient(90deg, var(--chk) 0 calc(24 * var(--px)), transparent calc(24 * var(--px)) calc(47 * var(--px))),
    repeating-linear-gradient(90deg, var(--chk) 0 calc(24 * var(--px)), transparent calc(24 * var(--px)) calc(47 * var(--px)));
  background-size:calc(450 * var(--px)) calc(24 * var(--px));
  background-position:0 0, calc(24 * var(--px)) calc(24 * var(--px)), 0 calc(48 * var(--px)), calc(24 * var(--px)) calc(72 * var(--px));
  background-repeat:no-repeat;
}
.sec-title__txt{
  position:absolute; left:0; right:0; top:calc(59 * var(--px));
  margin:0; text-align:center;
  font-family:var(--ff-mincho); font-weight:500; font-size:calc(50 * var(--px)); line-height:1;
}
.sec-title__plum{position:absolute; top:calc(61 * var(--px)); width:calc(48 * var(--px)); height:auto;}
.sec-title__plum--l{left:calc(61 * var(--px));}
.sec-title__plum--r{right:calc(61 * var(--px));}
.sec-title--sub{height:calc(103 * var(--px)); --chk: rgba(151,135,86,.1);}
.sec-title--sub .sec-title__txt{top:calc(62 * var(--px)); font-size:calc(36 * var(--px)); color:#D3BA6A;}
.sec-title--sub .sec-title__txt--sm{font-size:calc(32.9 * var(--px)); top:calc(64 * var(--px));}
.sec-title--sub .sec-title__plum{top:calc(59 * var(--px));}
.sec-title--sub .sec-title__plum--l{left:calc(41 * var(--px));}
.sec-title--sub .sec-title__plum--r{right:calc(41 * var(--px));}
.sec-reitou .sec-title__plum--l{left:calc(30 * var(--px));}
.sec-reitou .sec-title__plum--r{right:calc(30 * var(--px));}
.sec-oshinagaki--reitou .sec-title__plum--l{left:calc(22 * var(--px));}
.sec-oshinagaki--reitou .sec-title__plum--r{right:calc(25 * var(--px));}

.sec-lead{
  margin:calc(3 * var(--px)) 0 0; text-align:center;
  font-family:var(--ff-gothic); font-weight:700; font-size:calc(18 * var(--px)); line-height:calc(29 * var(--px)); color:#fff;
}

/* CTAエリア */
.cta-area{background:var(--red); padding:calc(25 * var(--px)) calc(20 * var(--px)) 0;}
.cta-area__lead{
  margin:0; text-align:center;
  font-family:var(--ff-mincho); font-weight:700; font-size:calc(23 * var(--px)); line-height:1.3;
  background-image:linear-gradient(90deg, #FBCF00 8%, #F5D67B 23%, #ffe495 31%, #f5d163 47%, #fff1c8 63%, #E7CD67 87%, #F3E18B 95%, #FFFCD1 110%);
}
.cta-pill{
  display:block; position:relative;
  height:calc(82 * var(--px)); margin-top:calc(12 * var(--px)); border-radius:calc(41 * var(--px));
  background:#fff; color:#000;
}
.cta-pill__sub{position:absolute; left:0; right:0; top:calc(7 * var(--px)); text-align:center; font-family:var(--ff-mincho); font-weight:700; font-size:calc(18 * var(--px)); line-height:1; color:var(--red);}
.cta-pill__main{position:absolute; left:0; right:0; top:calc(28 * var(--px)); text-align:center; font-family:var(--ff-mincho); font-weight:700; font-size:calc(36.5 * var(--px)); line-height:1;}
.cta-pill__arrow{
  position:absolute; right:calc(21.5 * var(--px)); top:calc(25.6 * var(--px));
  width:calc(30.75 * var(--px)); height:calc(30.75 * var(--px)); border-radius:50%; background:var(--red);
}
.cta-pill__arrow::after{
  content:""; position:absolute; left:50%; top:50%;
  width:calc(8 * var(--px)); height:calc(8 * var(--px));
  border-top:calc(2 * var(--px)) solid #fff; border-right:calc(2 * var(--px)) solid #fff;
  transform:translate(-65%,-50%) rotate(45deg);
}
.tel-area{display:flex; gap:calc(7.4 * var(--px)); margin-top:calc(13 * var(--px));}
.tel-area__item{
  flex:1; display:flex; flex-direction:column; align-items:center; gap:calc(4 * var(--px));
  background:#fff; border-radius:999px; padding:calc(15 * var(--px)) calc(6 * var(--px)); min-width:0;
}
.tel-area__label{font-family:var(--ff-gothic); font-weight:700; font-size:calc(14.8 * var(--px)); line-height:1; color:#000; font-feature-settings:"halt";}
.tel-area__num{display:flex; align-items:center; gap:calc(4.6 * var(--px)); letter-spacing:calc(-0.3 * var(--px)); font-family:var(--ff-gothic); font-weight:700; font-size:calc(20.4 * var(--px)); line-height:1; color:var(--red); white-space:nowrap;}
.tel-area__num img{flex:none; width:calc(24 * var(--px)); height:calc(24 * var(--px));}
.cta-area--inner{background:transparent; padding:0 calc(3 * var(--px)) calc(28 * var(--px));}

/* 商品バンド＋カード */
.product + .product{margin-top:calc(47 * var(--px));}
.product__band{
  position:relative; z-index:2;
  width:calc(402 * var(--px)); margin:0 auto; padding:calc(16 * var(--px)) 0 calc(14 * var(--px));
  display:flex; flex-direction:column; align-items:center; gap:calc(10 * var(--px));
  background:linear-gradient(125.6deg, #FFE258 2%, #CB9B0C 110%);
  color:#000; font-family:var(--ff-mincho); font-weight:700; text-align:center;
}
.product__band::after{
  content:""; position:absolute; left:50%; bottom:calc(-10.5 * var(--px)); transform:translateX(-50%);
  border-left:calc(19 * var(--px)) solid transparent; border-right:calc(19 * var(--px)) solid transparent; border-top:calc(11 * var(--px)) solid #E5BE32;
}
.product__band-sub{font-size:calc(20 * var(--px)); line-height:1;}
.product__band-name{margin-left:calc(4 * var(--px)); font-size:calc(30 * var(--px));}
.product__band-yomi{font-size:calc(14 * var(--px)); margin-left:calc(1 * var(--px));}
.product__band-main{font-size:calc(25 * var(--px)); line-height:1;}
.product__card{position:relative; margin:calc(-52 * var(--px)) 0 0; z-index:1;}
.product__card--nagomi{margin-top:calc(-57 * var(--px));}
.product__card--nozomi{margin-top:calc(-65 * var(--px));}
.product__img{display:block; width:100%;}
.product__name{position:absolute; height:auto;}
.product__ruby{position:absolute; font-family:var(--ff-mincho); font-weight:700; font-size:calc(20 * var(--px)); line-height:1; color:#E7CD67; white-space:nowrap;}
.product__size{position:absolute; right:calc(21 * var(--px)); font-family:var(--ff-mincho); font-weight:500; font-size:calc(18 * var(--px)); line-height:1; color:#fff; white-space:nowrap;}
.product__badge{
  position:absolute; left:calc(17 * var(--px)); width:calc(110 * var(--px)); height:calc(88 * var(--px));
  background:url(../images/2027osechi/badge_group152.svg) center/contain no-repeat;
  text-align:center; font-family:var(--ff-maru); font-weight:700; color:#000;
}
.product__badge-t{position:absolute; left:0; right:0; top:calc(23 * var(--px)); font-size:calc(14 * var(--px)); line-height:1;}
.product__badge-n{position:absolute; left:0; right:0; top:calc(43 * var(--px)); font-size:calc(18 * var(--px)); line-height:1;}
.product__price{
  position:absolute; right:calc(18 * var(--px));
  font-family:var(--ff-mincho); font-weight:700; line-height:calc(91.5 * var(--px)); white-space:nowrap; color:#fff;
}
.product__price .num{font-size:calc(85.85 * var(--px)); letter-spacing:calc(-4.3 * var(--px));}
.product__price .yen{font-size:calc(43.5 * var(--px)); letter-spacing:calc(-2.2 * var(--px));}
.product__price .tax{position:absolute; right:calc(3 * var(--px)); top:calc(22 * var(--px)); font-weight:400; font-size:calc(18.1 * var(--px)); line-height:1.2; letter-spacing:0;}
.product__price .tax--ship{top:calc(10 * var(--px)); font-size:calc(13 * var(--px)); line-height:1.15; text-align:right;}
.product__desc{
  position:relative; z-index:2;
  width:calc(402 * var(--px)); margin:0 auto;
  font-family:var(--ff-maru); font-weight:500; font-size:calc(20 * var(--px)); line-height:calc(35 * var(--px)); letter-spacing:calc(0.2 * var(--px)); color:#fff;
}
.btn-more, .btn-order{
  display:flex; align-items:center;
  width:calc(341 * var(--px)); margin:calc(24 * var(--px)) auto 0;
  padding:calc(12 * var(--px)) calc(12 * var(--px)) calc(12 * var(--px)) calc(32 * var(--px));
  border:1px solid #fff; border-radius:999px;
  color:#fff; font-family:var(--ff-mincho); font-weight:700; font-size:calc(28 * var(--px)); line-height:calc(37 * var(--px)); text-align:center;
}
.btn-more{position:relative; z-index:2;}
.btn-more__arrow, .btn-order__arrow{
  flex:none; width:calc(37 * var(--px)); height:calc(37 * var(--px)); margin-left:auto;
  background:url(../images/2027osechi/arrow_circle_frame242.svg) center/contain no-repeat;
}
.btn-more__arrow{transform:rotate(90deg);}
.btn-more__txt{flex:1; text-align:center;}

/* 鳳凰 */
#houou .product__name--a{left:calc(256 * var(--px)); top:calc(52 * var(--px)); width:calc(136 * var(--px));}
#houou .product__name--b{left:calc(340 * var(--px)); top:calc(150 * var(--px)); width:calc(101 * var(--px));}
#houou .product__ruby--1{left:calc(371 * var(--px)); top:calc(89 * var(--px));}
#houou .product__ruby--2{left:calc(386 * var(--px)); top:calc(110 * var(--px));}
#houou .product__size{top:calc(461 * var(--px));}
#houou .product__badge{top:calc(490 * var(--px));}
#houou .product__price{top:calc(487 * var(--px));}
#houou .product__desc{margin-top:calc(58 * var(--px));}
/* 絢爛 */
#kenran .product__name--a{left:calc(260 * var(--px)); top:calc(50 * var(--px)); width:calc(111 * var(--px));}
#kenran .product__name--b{left:calc(333 * var(--px)); top:calc(143 * var(--px)); width:calc(96 * var(--px));}
#kenran .product__ruby--1{left:calc(372 * var(--px)); top:calc(78 * var(--px));}
#kenran .product__ruby--2{left:calc(387 * var(--px)); top:calc(99 * var(--px));}
#kenran .product__size{top:calc(474 * var(--px));}
#kenran .product__badge{top:calc(502 * var(--px));}
#kenran .product__price{top:calc(499 * var(--px));}
#kenran .product__desc{margin-top:calc(77 * var(--px));}
/* 鶴亀 */
#tsurukame .product__name--a{left:calc(219 * var(--px)); top:calc(71 * var(--px)); width:calc(128 * var(--px));}
#tsurukame .product__name--b{left:calc(328 * var(--px)); top:calc(97 * var(--px)); width:calc(88 * var(--px));}
#tsurukame .product__ruby--1{left:calc(335 * var(--px)); top:calc(66 * var(--px));}
#tsurukame .product__size{top:calc(391 * var(--px));}
#tsurukame .product__badge{top:calc(419 * var(--px));}
#tsurukame .product__price{top:calc(416 * var(--px));}
#tsurukame .product__desc{margin-top:calc(-6 * var(--px));}
/* 雅 */
#miyabi .product__name--a{left:calc(298 * var(--px)); top:calc(101 * var(--px)); width:calc(136 * var(--px));}
#miyabi .product__ruby--1{left:calc(365 * var(--px)); top:calc(219 * var(--px));}
#miyabi .product__size{top:calc(391 * var(--px));}
#miyabi .product__badge{top:calc(419 * var(--px));}
#miyabi .product__price{top:calc(416 * var(--px));}
#miyabi .product__desc{margin-top:calc(-6 * var(--px));}
/* 和 */
#nagomi .product__name--a{left:calc(299 * var(--px)); top:calc(69 * var(--px)); width:calc(103 * var(--px));}
#nagomi .product__ruby--1{left:calc(347 * var(--px)); top:calc(174 * var(--px));}
#nagomi .product__size{top:calc(411 * var(--px));}
#nagomi .product__badge{top:calc(440 * var(--px));}
#nagomi .product__price{top:calc(437 * var(--px));}
#nagomi .product__desc{margin-top:calc(14 * var(--px));}
/* 希 */
#nozomi .product__name--a{left:calc(270 * var(--px)); top:calc(66 * var(--px)); width:calc(88 * var(--px));}
#nozomi .product__ruby--1{left:calc(363 * var(--px)); top:calc(96 * var(--px));}
#nozomi .product__size{top:calc(344 * var(--px));}
#nozomi .product__badge{top:calc(373 * var(--px));}
#nozomi .product__price{top:calc(370 * var(--px));}
#nozomi .product__desc{margin-top:calc(13 * var(--px));}

/* ============================================================
   FV
   ============================================================ */
.fv{
  position:relative; height:auto; aspect-ratio:450 / 863; overflow:hidden;
  background:url(../images/2027osechi/fv_bg.webp) center top / cover no-repeat;
}
.fv img{height:auto;}
.fv__title1{position:absolute; left:calc(78 * var(--px)); top:calc(25 * var(--px)); width:calc(304 * var(--px)); transform:rotate(1.43deg);}
.fv__title2{position:absolute; left:calc(34 * var(--px)); top:calc(100 * var(--px)); width:calc(388 * var(--px));}
.fv__plum{position:absolute;}
.fv__plum1{left:calc(21 * var(--px)); top:calc(183 * var(--px)); width:calc(40 * var(--px)); transform:rotate(-40.86deg);}
.fv__plum2{left:calc(30 * var(--px)); top:calc(229 * var(--px)); width:calc(34 * var(--px)); transform:rotate(-60.95deg);}
.fv__plum3{left:calc(78 * var(--px)); top:calc(182 * var(--px)); width:calc(16 * var(--px)); transform:rotate(-16.6deg);}
.fv__fish{position:absolute; left:calc(362 * var(--px)); top:calc(505 * var(--px)); width:calc(74 * var(--px));}
.fv__deco{position:absolute;}
.fv__deco3{left:calc(333 * var(--px)); top:calc(566 * var(--px)); width:calc(20 * var(--px)); transform:rotate(-7.56deg);}
.fv__deco5{left:calc(416 * var(--px)); top:calc(485 * var(--px)); width:calc(19 * var(--px)); transform:rotate(12.42deg);}
.fv__brand{
  position:absolute; left:calc(42 * var(--px)); top:calc(538 * var(--px)); width:calc(378 * var(--px));
  display:flex; flex-direction:column; align-items:center; gap:calc(14 * var(--px));
  filter:drop-shadow(calc(-2 * var(--px)) calc(-2 * var(--px)) calc(9 * var(--px)) #fff) drop-shadow(0 0 calc(6 * var(--px)) rgba(255,232,139,.9));
}
.fv__sogyo{width:calc(173 * var(--px));}
.fv__brandrow{display:flex; align-items:flex-start; gap:calc(2 * var(--px)); width:100%;}
.fv__brandrow img{width:calc(216 * var(--px));}
.fv__brandrow span{font-family:var(--ff-mincho); font-weight:700; font-size:calc(41.9 * var(--px)); line-height:calc(52.8 * var(--px)); letter-spacing:calc(-2.5 * var(--px)); color:#000; white-space:nowrap;}
.fv__lead{
  position:absolute; left:0; right:0; top:calc(680 * var(--px)); margin:0;
  text-align:center; font-family:var(--ff-gothic); font-weight:700; font-size:calc(24 * var(--px)); line-height:calc(38 * var(--px)); color:#000;
}
.fv__lead .hl{display:inline-block; background:var(--red); color:#fff; line-height:calc(31 * var(--px)); padding:0 calc(4 * var(--px)); margin:0 calc(2 * var(--px));}
.fv__btns{position:absolute; left:calc(20 * var(--px)); top:calc(777 * var(--px)); width:calc(410 * var(--px)); display:flex; gap:calc(12 * var(--px));}
.fv__btn{
  flex:1; display:flex; align-items:center; justify-content:center; gap:calc(10 * var(--px));
  height:calc(56 * var(--px)); padding:0 calc(16 * var(--px)) 0 calc(26 * var(--px)); border-radius:999px;
  color:#fff; font-family:var(--ff-mincho); font-weight:700; font-size:calc(24 * var(--px)); line-height:1;
}
.fv__btn--red{background:var(--darkred);}
.fv__btn--navy{background:var(--navy);}
.fv__btn-arrow{flex:none; width:calc(24 * var(--px)); height:calc(24 * var(--px)); background:url(../images/2027osechi/fv_btn_arrow_frame242.svg) center/contain no-repeat;}

/* ============================================================
   CTA + イントロ
   ============================================================ */
.intro-area{padding-bottom:calc(40 * var(--px));}
.intro{position:relative; margin-top:calc(32 * var(--px)); min-height:calc(360 * var(--px));}
.intro__txt{
  margin:0; padding-left:calc(12 * var(--px));
  font-family:var(--ff-maru); font-weight:500; font-size:calc(18.46 * var(--px)); line-height:calc(28.7 * var(--px)); letter-spacing:calc(0.37 * var(--px)); color:#fff;
}
.intro__txt + .intro__txt{margin-top:calc(28 * var(--px));}
.intro__txt{width:calc(409 * var(--px));}
.intro__txt .ln{display:block; white-space:nowrap;}
.intro__txt .hl{display:inline-block; background:#FFFCD1; color:var(--red); font-weight:700; line-height:1; padding:calc(5.5 * var(--px)) calc(2.8 * var(--px));}
.intro__chikuwa{position:absolute; right:calc(6 * var(--px)); top:calc(76 * var(--px)); width:calc(159 * var(--px)); z-index:0;}
.intro__txt{position:relative; z-index:1;}

/* ============================================================
   おせち / 冷凍おせち
   ============================================================ */
.sec-osechi{background:var(--darkred); padding-bottom:calc(47 * var(--px));}
.sec-reitou{background:var(--navy); padding-bottom:calc(53 * var(--px));}
.sec-reitou .sec-lead{margin-top:calc(18 * var(--px));}
.type-box{
  margin:calc(20 * var(--px)) calc(24 * var(--px)) 0; padding:calc(10 * var(--px)) calc(28 * var(--px)) calc(12 * var(--px));
  background:var(--red); border-radius:calc(24 * var(--px));
}
.type-box__ttl{margin:0 calc(-20 * var(--px)); text-align:center; font-family:var(--ff-gothic); font-weight:700; font-size:calc(18 * var(--px)); line-height:calc(24 * var(--px)); color:#fff; font-feature-settings:"halt"; white-space:nowrap;}
.type-box__grid{display:grid; grid-template-columns:1fr 1fr; gap:calc(8 * var(--px)); margin-top:calc(15 * var(--px));}
.type-box__grid a{
  display:flex; align-items:center; justify-content:center;
  height:calc(50 * var(--px)); border-radius:999px; background:#fff;
  color:var(--red); font-family:var(--ff-mincho); font-weight:700; font-size:calc(20 * var(--px));
}
.dates{margin:calc(32 * var(--px)) calc(22 * var(--px)) calc(47 * var(--px)) calc(22 * var(--px)); display:flex; flex-direction:column; gap:calc(20 * var(--px));}
.dates--reitou{margin-top:calc(31 * var(--px)); margin-bottom:calc(45 * var(--px));}
.dates__row{display:flex; align-items:center; gap:calc(4 * var(--px)); color:#fff; height:calc(18 * var(--px));}
.dates__row .dot{display:inline-block; margin:0 -0.22em;}
.dates__row dt{font-family:var(--ff-mincho); font-weight:700; font-size:calc(19 * var(--px)); line-height:1; letter-spacing:calc(-0.6 * var(--px)); font-feature-settings:"palt"; white-space:nowrap;}
.dates__row dd{flex:1; display:flex; align-items:center; justify-content:flex-end; margin:0; font-family:var(--ff-mincho); font-weight:500; font-size:calc(24 * var(--px)); line-height:1; letter-spacing:calc(-0.72 * var(--px)); white-space:nowrap;}
.dates__row dd::before{content:""; flex:1; border-top:1px dashed #BFBFBF; margin:0 calc(4 * var(--px)) 0 calc(2 * var(--px));}
.dates__time{font-size:calc(15 * var(--px)); margin-left:calc(2 * var(--px));}
.dates__row--em{color:#FFF0A9;}

/* ============================================================
   お品書き
   ============================================================ */
.sec-oshinagaki{background:var(--brown); padding-bottom:calc(60 * var(--px));}
.sec-oshinagaki--reitou{background:var(--navy2); padding-bottom:calc(79 * var(--px));}
.sec-oshinagaki .sec-lead{margin-top:calc(22 * var(--px));}
.osh{
  display:flow-root; width:calc(400 * var(--px)); margin:calc(22 * var(--px)) auto 0; padding-top:calc(25 * var(--px));
  background:#000 center top / cover no-repeat;
  text-shadow:0px 0px 6px #fff8dd, 0px 0px 16px #fff8dd;
}
.osh + .osh{margin-top:calc(56 * var(--px));}
.osh__name{
  margin:0; text-align:center; font-family:var(--ff-maru); font-weight:500; line-height:1;
  letter-spacing:calc(-2.5 * var(--px)); color:#000; white-space:nowrap;
}
.osh__name .kanji{font-size:calc(50.1 * var(--px));}
.osh__name .kana, .osh__name .pre{font-size:calc(20 * var(--px));}
.osh__name .kana{margin-left:calc(6 * var(--px));}
.osh__info{display:flex; justify-content:center; align-items:flex-end; gap:calc(6.7 * var(--px)); height:calc(55 * var(--px)); margin-top:calc(25 * var(--px));}
.osh__spec{display:flex; flex-direction:column; gap:calc(1.5 * var(--px)); color:#000;}
.osh__serv{font-family:var(--ff-gothic); font-weight:700; font-size:calc(22.95 * var(--px)); line-height:1; white-space:nowrap;}
.osh__serv-num{font-size:1.25em;}
.osh__size{font-family:var(--ff-mincho); font-weight:500; font-size:calc(17.2 * var(--px)); line-height:1.2; white-space:nowrap; letter-spacing:calc(0.3 * var(--px));}
.osh__price{position:relative; font-family:var(--ff-mincho); font-weight:700; line-height:1; color:#000; white-space:nowrap;}
.osh__price .num{font-size:calc(56.4 * var(--px)); letter-spacing:calc(-2.8 * var(--px));}
.osh__price .yen{font-size:calc(28.6 * var(--px)); letter-spacing:calc(-1.4 * var(--px));}
.osh__price .tax{position:absolute; right:calc(2 * var(--px)); top:calc(12 * var(--px)); font-weight:400; font-size:calc(11.9 * var(--px)); letter-spacing:0; line-height:1;}
.osh__price .tax--ship{top:calc(2 * var(--px)); font-size:calc(9.5 * var(--px)); line-height:1.15; text-align:right;}
/* 行 = 写真と品目リストの横並び。座標は Figma のカード基準（margin で再現し、写真はカード外へはみ出す） */
.osh__row{display:flex; align-items:flex-start;}
.osh__col{flex:none; display:flex; flex-direction:column; align-items:flex-start;}
.osh__photo{display:block; flex:none; max-width:none;}
.osh__list{color:#000;}
.osh__list h4{margin:0 0 calc(5 * var(--px)); font-family:var(--ff-gothic); font-weight:700; font-size:calc(20 * var(--px)); line-height:calc(26.7 * var(--px)); letter-spacing:calc(-1 * var(--px));}
.osh__list ul{margin:0; padding:0 0 0 calc(6 * var(--px)); list-style:none; font-family:var(--ff-gothic); font-weight:500; font-size:calc(12 * var(--px)); line-height:calc(18 * var(--px)); letter-spacing:0;}
.osh__list li{position:relative; padding-left:calc(12 * var(--px)); font-weight:600;}
.osh__list li::before{content:"・"; position:absolute; left:0; top:0;}
.btn-order{
  margin:0 auto calc(-33 * var(--px));
  background:var(--red); border-color:var(--red); text-shadow:none;
}
.osh--houou .osh__row--1{margin-top:calc(-2 * var(--px));}
.osh--houou .osh__row--1 > .osh__col:nth-child(1){margin:calc(0 * var(--px)) 0 0 calc(-24 * var(--px)); width:calc(236 * var(--px));}
.osh--houou .osh__row--1 > .osh__col:nth-child(1) > :nth-child(1){margin:calc(0 * var(--px)) 0 0 calc(0 * var(--px)); width:calc(236 * var(--px)); height:calc(248 * var(--px));}
.osh--houou .osh__row--1 > .osh__col:nth-child(2){margin:calc(33 * var(--px)) 0 0 calc(6 * var(--px)); width:calc(160 * var(--px));}
.osh--houou .osh__row--1 > .osh__col:nth-child(2) > :nth-child(1){width:calc(176 * var(--px));}
.osh--houou .osh__row--2{margin-top:calc(25 * var(--px));}
.osh--houou .osh__row--2 > .osh__col:nth-child(1){margin:calc(0 * var(--px)) 0 0 calc(23 * var(--px)); width:calc(157 * var(--px));}
.osh--houou .osh__row--2 > .osh__col:nth-child(1) > :nth-child(1){width:calc(168 * var(--px));}
.osh--houou .osh__row--2 > .osh__col:nth-child(2){margin:calc(12 * var(--px)) 0 0 calc(19 * var(--px)); width:calc(220 * var(--px));}
.osh--houou .osh__row--2 > .osh__col:nth-child(2) > :nth-child(1){margin:calc(0 * var(--px)) 0 0 calc(0 * var(--px)); width:calc(220 * var(--px)); height:calc(221 * var(--px));}
.osh--houou .osh__row--3{margin-top:calc(25.3 * var(--px));}
.osh--houou .osh__row--3 > .osh__col:nth-child(1){margin:calc(0 * var(--px)) 0 0 calc(-16 * var(--px)); width:calc(220 * var(--px));}
.osh--houou .osh__row--3 > .osh__col:nth-child(1) > :nth-child(1){margin:calc(0 * var(--px)) 0 0 calc(0 * var(--px)); width:calc(220 * var(--px)); height:calc(215 * var(--px));}
.osh--houou .osh__row--3 > .osh__col:nth-child(2){margin:calc(3 * var(--px)) 0 0 calc(14 * var(--px)); width:calc(160 * var(--px));}
.osh--houou .osh__row--3 > .osh__col:nth-child(2) > :nth-child(1){width:calc(176 * var(--px));}
.osh--houou{background-image:url(../images/2027osechi/osh_tex_gold.webp);}
.osh--houou .btn-order{margin-top:calc(34 * var(--px));}
.osh--kenran .osh__row--1{margin-top:calc(31 * var(--px));}
.osh--kenran .osh__row--1 > .osh__col:nth-child(1){margin:calc(0 * var(--px)) 0 0 calc(-16 * var(--px)); width:calc(220 * var(--px));}
.osh--kenran .osh__row--1 > .osh__col:nth-child(1) > :nth-child(1){margin:calc(0 * var(--px)) 0 0 calc(0 * var(--px)); width:calc(220 * var(--px)); height:calc(210 * var(--px));}
.osh--kenran .osh__row--1 > .osh__col:nth-child(2){margin:calc(10 * var(--px)) 0 0 calc(14 * var(--px)); width:calc(160 * var(--px));}
.osh--kenran .osh__row--1 > .osh__col:nth-child(2) > :nth-child(1){width:calc(176 * var(--px));}
.osh--kenran .osh__row--2{margin-top:calc(30 * var(--px));}
.osh--kenran .osh__row--2 > .osh__col:nth-child(1){margin:calc(0 * var(--px)) 0 0 calc(23 * var(--px)); width:calc(157 * var(--px));}
.osh--kenran .osh__row--2 > .osh__col:nth-child(1) > :nth-child(1){width:calc(164 * var(--px));}
.osh--kenran .osh__row--2 > .osh__col:nth-child(2){margin:calc(12 * var(--px)) 0 0 calc(15 * var(--px)); width:calc(232 * var(--px));}
.osh--kenran .osh__row--2 > .osh__col:nth-child(2) > :nth-child(1){margin:calc(0 * var(--px)) 0 0 calc(0 * var(--px)); width:calc(232 * var(--px)); height:calc(205 * var(--px));}
.osh--kenran .osh__row--3{margin-top:calc(28.3 * var(--px));}
.osh--kenran .osh__row--3 > .osh__col:nth-child(1){margin:calc(3 * var(--px)) 0 0 calc(-16 * var(--px)); width:calc(220 * var(--px));}
.osh--kenran .osh__row--3 > .osh__col:nth-child(1) > :nth-child(1){margin:calc(0 * var(--px)) 0 0 calc(0 * var(--px)); width:calc(220 * var(--px)); height:calc(204 * var(--px));}
.osh--kenran .osh__row--3 > .osh__col:nth-child(2){margin:calc(0 * var(--px)) 0 0 calc(14 * var(--px)); width:calc(160 * var(--px));}
.osh--kenran .osh__row--3 > .osh__col:nth-child(2) > :nth-child(1){width:calc(176 * var(--px));}
.osh--kenran{background-image:url(../images/2027osechi/osh_tex_gold.webp);}
.osh--kenran .btn-order{margin-top:calc(34.3 * var(--px));}
.osh--tsurukame .osh__row--1{margin-top:calc(26 * var(--px));}
.osh--tsurukame .osh__row--1 > .osh__col:nth-child(1){margin:calc(0 * var(--px)) 0 0 calc(-16 * var(--px)); width:calc(220 * var(--px));}
.osh--tsurukame .osh__row--1 > .osh__col:nth-child(1) > :nth-child(1){margin:calc(0 * var(--px)) 0 0 calc(0 * var(--px)); width:calc(220 * var(--px)); height:calc(227 * var(--px));}
.osh--tsurukame .osh__row--1 > .osh__col:nth-child(2){margin:calc(15 * var(--px)) 0 0 calc(14 * var(--px)); width:calc(160 * var(--px));}
.osh--tsurukame .osh__row--1 > .osh__col:nth-child(2) > :nth-child(1){width:calc(176 * var(--px));}
.osh--tsurukame .osh__row--2{margin-top:calc(18 * var(--px));}
.osh--tsurukame .osh__row--2 > .osh__col:nth-child(1){margin:calc(0 * var(--px)) 0 0 calc(23 * var(--px)); width:calc(157 * var(--px));}
.osh--tsurukame .osh__row--2 > .osh__col:nth-child(1) > :nth-child(1){width:calc(168 * var(--px));}
.osh--tsurukame .osh__row--2 > .osh__col:nth-child(2){margin:calc(13 * var(--px)) 0 0 calc(19 * var(--px)); width:calc(228 * var(--px));}
.osh--tsurukame .osh__row--2 > .osh__col:nth-child(2) > :nth-child(1){margin:calc(0 * var(--px)) 0 0 calc(0 * var(--px)); width:calc(228 * var(--px)); height:calc(217 * var(--px));}
.osh--tsurukame .osh__row--2 > .osh__col:nth-child(2) > :nth-child(2){margin:calc(18 * var(--px)) 0 0 calc(19 * var(--px));}
.osh--tsurukame .osh__row--2 > .osh__col:nth-child(2) > :nth-child(2){width:calc(176 * var(--px));}
.osh--tsurukame{background-image:url(../images/2027osechi/osh_tex_gold.webp);}
.osh--tsurukame .btn-order{margin-top:calc(31 * var(--px));}
.osh--miyabi .osh__row--1{margin-top:calc(26 * var(--px));}
.osh--miyabi .osh__row--1 > .osh__col:nth-child(1){margin:calc(0 * var(--px)) 0 0 calc(-23 * var(--px)); width:calc(227 * var(--px));}
.osh--miyabi .osh__row--1 > .osh__col:nth-child(1) > :nth-child(1){margin:calc(0 * var(--px)) 0 0 calc(0 * var(--px)); width:calc(227 * var(--px)); height:calc(220 * var(--px));}
.osh--miyabi .osh__row--1 > .osh__col:nth-child(2){margin:calc(15 * var(--px)) 0 0 calc(14 * var(--px)); width:calc(160 * var(--px));}
.osh--miyabi .osh__row--1 > .osh__col:nth-child(2) > :nth-child(1){width:calc(176 * var(--px));}
.osh--miyabi .osh__row--2{margin-top:calc(-125.7 * var(--px));}
.osh--miyabi .osh__row--2 > .osh__col:nth-child(1){margin:calc(0 * var(--px)) 0 0 calc(23 * var(--px)); width:calc(157 * var(--px));}
.osh--miyabi .osh__row--2 > .osh__col:nth-child(1) > :nth-child(1){width:calc(187 * var(--px));}
.osh--miyabi{background-image:url(../images/2027osechi/osh_tex_gold.webp);}
.osh--miyabi .btn-order{margin-top:calc(31 * var(--px));}
.osh--nagomi .osh__row--1{margin-top:calc(21 * var(--px));}
.osh--nagomi .osh__row--1 > .osh__col:nth-child(1){margin:calc(0 * var(--px)) 0 0 calc(-24 * var(--px)); width:calc(246 * var(--px));}
.osh--nagomi .osh__row--1 > .osh__col:nth-child(1) > :nth-child(1){margin:calc(0 * var(--px)) 0 0 calc(0 * var(--px)); width:calc(246 * var(--px)); height:calc(228 * var(--px));}
.osh--nagomi .osh__row--1 > .osh__col:nth-child(2){margin:calc(10 * var(--px)) 0 0 calc(-4 * var(--px)); width:calc(160 * var(--px));}
.osh--nagomi .osh__row--1 > .osh__col:nth-child(2) > :nth-child(1){width:calc(176 * var(--px));}
.osh--nagomi .osh__row--2{margin-top:calc(15 * var(--px));}
.osh--nagomi .osh__row--2 > .osh__col:nth-child(1){margin:calc(18 * var(--px)) 0 0 calc(23 * var(--px)); width:calc(157 * var(--px));}
.osh--nagomi .osh__row--2 > .osh__col:nth-child(1) > :nth-child(1){width:calc(168 * var(--px));}
.osh--nagomi .osh__row--2 > .osh__col:nth-child(2){margin:calc(0 * var(--px)) 0 0 calc(19 * var(--px)); width:calc(220 * var(--px));}
.osh--nagomi .osh__row--2 > .osh__col:nth-child(2) > :nth-child(1){margin:calc(0 * var(--px)) 0 0 calc(0 * var(--px)); width:calc(220 * var(--px)); height:calc(212 * var(--px));}
.osh--nagomi .osh__row--3{margin-top:calc(21 * var(--px));}
.osh--nagomi .osh__row--3 > .osh__col:nth-child(1){margin:calc(4 * var(--px)) 0 0 calc(-16 * var(--px)); width:calc(222 * var(--px));}
.osh--nagomi .osh__row--3 > .osh__col:nth-child(1) > :nth-child(1){margin:calc(0 * var(--px)) 0 0 calc(0 * var(--px)); width:calc(222 * var(--px)); height:calc(221 * var(--px));}
.osh--nagomi .osh__row--3 > .osh__col:nth-child(2){margin:calc(0 * var(--px)) 0 0 calc(12 * var(--px)); width:calc(160 * var(--px));}
.osh--nagomi .osh__row--3 > .osh__col:nth-child(2) > :nth-child(1){width:calc(176 * var(--px));}
.osh--nagomi{background-image:url(../images/2027osechi/osh_tex_navy1.webp);}
.osh--nagomi .btn-order{margin-top:calc(30 * var(--px));}
.osh--nozomi .osh__row--1{margin-top:calc(31 * var(--px));}
.osh--nozomi .osh__row--1 > .osh__col:nth-child(1){margin:calc(0 * var(--px)) 0 0 calc(-16 * var(--px)); width:calc(220 * var(--px));}
.osh--nozomi .osh__row--1 > .osh__col:nth-child(1) > :nth-child(1){margin:calc(0 * var(--px)) 0 0 calc(0 * var(--px)); width:calc(220 * var(--px)); height:calc(217 * var(--px));}
.osh--nozomi .osh__row--1 > .osh__col:nth-child(2){margin:calc(10 * var(--px)) 0 0 calc(14 * var(--px)); width:calc(160 * var(--px));}
.osh--nozomi .osh__row--1 > .osh__col:nth-child(2) > :nth-child(1){width:calc(176 * var(--px));}
.osh--nozomi .osh__row--2{margin-top:calc(6.3 * var(--px));}
.osh--nozomi .osh__row--2 > .osh__col:nth-child(1){margin:calc(0 * var(--px)) 0 0 calc(23 * var(--px)); width:calc(157 * var(--px));}
.osh--nozomi .osh__row--2 > .osh__col:nth-child(1) > :nth-child(1){width:calc(168 * var(--px));}
.osh--nozomi .osh__row--2 > .osh__col:nth-child(2){margin:calc(8 * var(--px)) 0 0 calc(19 * var(--px)); width:calc(220 * var(--px));}
.osh--nozomi .osh__row--2 > .osh__col:nth-child(2) > :nth-child(1){margin:calc(0 * var(--px)) 0 0 calc(0 * var(--px)); width:calc(220 * var(--px)); height:calc(215 * var(--px));}
.osh--nozomi{background-image:url(../images/2027osechi/osh_tex_navy1.webp);}
.osh--nozomi .btn-order{margin-top:calc(35.3 * var(--px));}

/* ============================================================
   特典
   ============================================================ */
.sec-tokuten{background:var(--red); padding:calc(37 * var(--px)) calc(17 * var(--px)) 0; text-align:center;}
.tokuten__ttl{margin:0; font-family:var(--ff-maru); font-weight:700; font-size:calc(40 * var(--px)); line-height:calc(51 * var(--px)); letter-spacing:calc(-2 * var(--px)); color:#fff;}
.tokuten__ttl + .tokuten__ttl, .tokuten__note + .tokuten__ttl{margin-top:calc(24 * var(--px));}
.tokuten__img{display:block; width:calc(416 * var(--px)); margin:calc(18 * var(--px)) auto 0;}
.tokuten__img--border{border:1px solid #fff; margin-top:calc(14 * var(--px));}
.tokuten__note{margin:calc(9 * var(--px)) 0 0; text-align:left; font-family:var(--ff-gothic); font-weight:500; font-size:calc(13 * var(--px)); line-height:1.6; color:#fff; font-feature-settings:"halt";}
.tokuten__note span{display:block; padding-left:1em; text-indent:-1em;}
.sec-tokuten .cta-area--inner{margin-top:calc(31 * var(--px)); text-align:left;}
.sec-tokuten--reitou .cta-area--inner{margin-top:calc(27 * var(--px));}

/* ============================================================
   58年の信頼
   ============================================================ */
.sec-shinrai{
  position:relative; overflow:hidden; text-align:center;
  padding:calc(48 * var(--px)) calc(31 * var(--px)) calc(60 * var(--px));
  background:linear-gradient(0deg, #E0B864 0.5%, #F7E392 24%, #FBF1C0 48%, #FFFDE5 68%, #FDF9DD 74%, #F8EFC8 82%, #F0E0A6 92%, #EAD48D 99%);
}
.sec-shinrai::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:url(../images/2027osechi/shinrai_tex.webp) center top / 100% auto repeat-y;
  mix-blend-mode:soft-light; opacity:.9;
}
.sec-shinrai > *{position:relative; z-index:1;}
.shinrai__logo{display:block; width:calc(178 * var(--px)); margin:0 auto;}
.shinrai__sub{margin:calc(4 * var(--px)) 0 0; font-family:var(--ff-maru); font-weight:700; font-size:calc(33 * var(--px)); line-height:calc(58.7 * var(--px)); color:#000;}
.shinrai__ttl{display:block; margin:calc(-19 * var(--px)) 0 0; font-family:var(--ff-maru); font-weight:700; line-height:.9; letter-spacing:calc(-3 * var(--px)); color:var(--red);}
.shinrai__ttl .n{font-size:calc(97.9 * var(--px));}
.shinrai__ttl .s{font-size:calc(50 * var(--px));}
.shinrai__ttl .m{font-size:calc(76 * var(--px));}
.shinrai__photo{display:block; width:calc(388 * var(--px)); margin:calc(19 * var(--px)) auto 0;}
.shinrai__txt{margin:calc(13 * var(--px)) 0 0; text-align:left; font-family:var(--ff-maru); font-weight:700; font-size:calc(16.4 * var(--px)); line-height:calc(26.3 * var(--px)); letter-spacing:calc(0.3 * var(--px)); color:#000;}
.shinrai__staff{display:block; width:calc(450 * var(--px)); max-width:none; margin:calc(6 * var(--px)) 0 0 calc(-31 * var(--px));}
.shinrai__lead{margin:calc(3 * var(--px)) 0 0; text-align:left; font-family:var(--ff-maru); font-weight:700; font-size:calc(23.6 * var(--px)); line-height:calc(38 * var(--px)); letter-spacing:calc(-1.6 * var(--px)); color:#E60012; white-space:nowrap;}
.shinrai__lead + .shinrai__txt{margin-top:calc(10 * var(--px));}

/* ============================================================
   お客様の声（Figma 41:56 リデザイン版・3カード共通）
   ============================================================ */
.sec-voice{background:#fff; padding:calc(50 * var(--px)) calc(35 * var(--px)) calc(22 * var(--px));}
.voice__ttl{margin:0; text-align:center; font-family:var(--ff-maru); font-weight:900; font-size:calc(30.5 * var(--px)); line-height:1.15; color:#000;}
.voice{position:relative; margin-top:calc(35 * var(--px));}
.voice__ttl + .voice{margin-top:calc(19 * var(--px));}
.voice__photo{position:relative; width:calc(379 * var(--px)); height:calc(253 * var(--px));}
.voice__photo > img:first-child{display:block; width:100%; height:100%; object-fit:cover;}
.voice__nagomi{position:absolute; left:calc(184 * var(--px)); top:calc(46 * var(--px)); width:calc(203 * var(--px)); height:auto;}
.voice__band{
  margin:calc(-35 * var(--px)) 0 0; width:calc(379 * var(--px)); height:calc(34.2 * var(--px));
  background:#CB9B0C; padding-left:calc(30 * var(--px));
  color:#fff; font-family:var(--ff-mincho); font-weight:700; font-size:calc(23.1 * var(--px)); line-height:calc(34.2 * var(--px)); white-space:nowrap; position:relative;
}
.voice__who{display:flex; align-items:center; margin:calc(18 * var(--px)) 0 0 calc(4 * var(--px)); font-family:var(--ff-mincho); font-weight:700; font-size:calc(18.5 * var(--px)); line-height:1; color:#525252;}
.voice__who .stars{display:inline-flex; gap:calc(9 * var(--px)); margin-left:calc(21 * var(--px));}
.voice__who .stars img{width:calc(25 * var(--px)); height:auto;}
.voice__txt{margin:calc(7 * var(--px)) 0 0 calc(3 * var(--px)); width:calc(376 * var(--px)); font-family:var(--ff-mincho); font-weight:400; font-size:calc(16.7 * var(--px)); line-height:calc(25.9 * var(--px)); letter-spacing:calc(-2 * var(--px)); color:#000;}

/* ============================================================
   贈り物
   ============================================================ */
.sec-gift{background:linear-gradient(180deg, #082F4F 0%, #04192A 100%); padding:calc(48 * var(--px)) calc(32 * var(--px)) calc(60 * var(--px));}
.gift__ttl{margin:0; text-align:center; font-family:var(--ff-maru); font-weight:900; font-size:calc(30.5 * var(--px)); line-height:calc(40 * var(--px)); color:#fff;}
.gift{margin-top:calc(23 * var(--px));}
.gift__photo{position:relative; width:calc(383.4 * var(--px));}
.gift__photo img{display:block; width:100%;}
.gift__photo + .gift__txt{margin-top:calc(8 * var(--px));}
.gift__txt + .gift__photo{margin-top:calc(60 * var(--px));}
.gift__label{
  position:absolute; left:calc(2.8 * var(--px)); top:0;
  width:calc(197.3 * var(--px)); height:calc(36.5 * var(--px)); padding-left:calc(6.5 * var(--px));
  background:#fff; clip-path:polygon(0 0, 100% 0, calc(100% - calc(15.25 * var(--px))) 100%, 0 100%);
  color:#CFA119; font-family:var(--ff-mincho); font-weight:700; font-size:calc(23.4 * var(--px)); line-height:calc(36.5 * var(--px)); white-space:nowrap;
}
.gift__label--w{width:calc(290.8 * var(--px)); padding-left:calc(9.4 * var(--px));}
.gift__osechi{position:absolute; right:calc(-11 * var(--px)); bottom:calc(-12 * var(--px)); width:calc(171.5 * var(--px)) !important; transform:rotate(-1.39deg);}
.gift__txt{margin:0; font-family:var(--ff-mincho); font-weight:400; font-size:calc(16.8 * var(--px)); line-height:calc(26.2 * var(--px)); letter-spacing:calc(-0.34 * var(--px)); color:#fff;}

/* ============================================================
   解凍方法
   ============================================================ */
.sec-kaitou{background:#F6E394; padding:calc(51 * var(--px)) calc(18 * var(--px)) calc(34 * var(--px)); text-align:center;}
.kaitou__ttl{margin:0; font-family:var(--ff-mincho); font-weight:700; font-size:calc(45 * var(--px)); line-height:calc(62 * var(--px)); color:#BB8C00; text-shadow:calc(2 * var(--px)) calc(2 * var(--px)) calc(4 * var(--px)) #E7C572;}
.kaitou__sub{margin:calc(17 * var(--px)) 0 0; font-family:var(--ff-mincho); font-weight:500; font-size:calc(24 * var(--px)); line-height:calc(37 * var(--px)); letter-spacing:calc(0.48 * var(--px)); color:#000;}
.kaitou__band{
  position:relative; margin:calc(28 * var(--px)) 0 0; height:calc(37 * var(--px));
  background:var(--red); color:#fff; font-family:var(--ff-mincho); font-weight:700; font-size:calc(27 * var(--px)); line-height:calc(37 * var(--px)); white-space:nowrap;
}
.kaitou__band::after{
  content:""; position:absolute; left:50%; bottom:calc(-11 * var(--px)); transform:translateX(-50%);
  border-left:calc(15.5 * var(--px)) solid transparent; border-right:calc(15.5 * var(--px)) solid transparent; border-top:calc(11 * var(--px)) solid var(--red);
}
.kaitou__steps{position:relative; margin-top:calc(25 * var(--px)); text-align:left;}
.kaitou__chikuwa{position:absolute; right:calc(-12 * var(--px)); top:0; width:calc(148 * var(--px));}
.kaitou__step{
  position:relative; margin:calc(7 * var(--px)) 0 0 calc(-17.4 * var(--px)); width:calc(160.4 * var(--px)); height:calc(38.3 * var(--px));
  padding-left:calc(17.4 * var(--px)); display:flex; align-items:center;
  background:#c5b14e;
  clip-path:polygon(0 0, 100% 0, calc(100% - calc(15.76 * var(--px))) 100%, 0 100%);
  color:#fff; font-family:var(--ff-mincho); font-weight:500; line-height:1; white-space:nowrap;
}
.kaitou__step .l{font-size:calc(22.35 * var(--px));}
.kaitou__step .n{font-size:calc(34.8 * var(--px));}
.kaitou__step--2{margin-top:calc(28 * var(--px));}
.kaitou__txt{margin:calc(4 * var(--px)) 0 0; width:calc(308 * var(--px)); font-family:var(--ff-mincho); font-weight:500; font-size:calc(18 * var(--px)); line-height:1.45; color:#000;}
.kaitou__txt--2{margin-top:calc(7 * var(--px));}
.kaitou__nagomi{position:absolute; left:calc(249 * var(--px)); top:calc(56 * var(--px)); width:calc(75 * var(--px));}
.kaitou__time{display:flex; align-items:center; gap:calc(5 * var(--px)); margin-top:calc(9 * var(--px));}
.kaitou__time-label{flex:none; width:calc(45 * var(--px)); height:calc(45 * var(--px)); display:flex; align-items:center; justify-content:center; background:#fff; color:#BB8C00; font-family:var(--ff-mincho); font-weight:500; font-size:calc(18 * var(--px)); line-height:calc(20 * var(--px)); text-align:center;}
.kaitou__time-val{font-family:var(--ff-mincho); font-weight:700; line-height:1; color:#000; white-space:nowrap;}
.kaitou__time-val .a{font-size:calc(32.3 * var(--px));}
.kaitou__time-val .b{font-size:calc(50.3 * var(--px));}
.kaitou__note{margin:calc(10 * var(--px)) 0 0; width:calc(410 * var(--px)); font-family:var(--ff-mincho); font-weight:500; font-size:calc(15 * var(--px)); line-height:calc(20 * var(--px)); color:#464646;}
.kaitou__hozon{margin:calc(46 * var(--px)) 0 0 calc(2 * var(--px)); width:calc(409.5 * var(--px)); min-height:calc(125 * var(--px)); padding:calc(13 * var(--px)) calc(27 * var(--px)); background:#FFFBEB;}
.kaitou__hozon-ttl{margin:0; font-family:var(--ff-mincho); font-weight:700; font-size:calc(20 * var(--px)); line-height:1.5; color:#CB9B0C;}
.kaitou__hozon ul{margin:0; padding:0; list-style:none; font-family:var(--ff-mincho); font-weight:500; font-size:calc(16 * var(--px)); line-height:1.5; color:#000;}

/* ============================================================
   FAQ
   ============================================================ */
.sec-faq{background:var(--cream); padding:calc(49 * var(--px)) calc(24 * var(--px)) calc(25 * var(--px));}
.faq__head{position:relative; height:calc(190 * var(--px)); text-align:center;}
.faq__mascot{position:absolute; top:0;}
.faq__mascot--l{left:calc(-8 * var(--px)); width:calc(79.5 * var(--px));}
.faq__mascot--r{right:calc(-11 * var(--px)); top:calc(12 * var(--px)); width:calc(73 * var(--px));}
.faq__pill{
  position:relative; display:inline-block; margin:calc(10 * var(--px)) 0 0;
  width:calc(273 * var(--px)); height:calc(33 * var(--px)); border-radius:calc(31 * var(--px));
  background:var(--red); color:#fff; font-family:var(--ff-maru); font-weight:700; font-size:calc(24.7 * var(--px)); line-height:calc(33 * var(--px));
}
.faq__pill::after{
  content:""; position:absolute; left:50%; bottom:calc(-8 * var(--px)); transform:translateX(-50%);
  border-left:calc(8.75 * var(--px)) solid transparent; border-right:calc(8.75 * var(--px)) solid transparent; border-top:calc(8.2 * var(--px)) solid var(--red);
}
.faq__ttl{margin:calc(13 * var(--px)) 0 0; color:var(--red); font-family:var(--ff-maru); font-weight:900; line-height:1.1;}
.faq__ttl .s{display:block; font-size:calc(32 * var(--px));}
.faq__ttl .l{display:block; font-size:calc(51.4 * var(--px));}
.accordion-area{margin-top:calc(25 * var(--px));}
.accordion + .accordion{margin-top:calc(28 * var(--px));}
.accordion-header{
  display:block; width:100%; min-height:calc(36.5 * var(--px)); padding:calc(9 * var(--px)) calc(30 * var(--px)) calc(9 * var(--px)) calc(36.5 * var(--px));
  background:#E7C572; border:0; cursor:pointer; position:relative;
  text-align:left; font-family:var(--ff-maru); font-weight:700; font-size:calc(15 * var(--px)); line-height:calc(18.7 * var(--px)); color:#000;
}
.accordion-header::before{
  content:"Q"; position:absolute; left:calc(9.4 * var(--px)); top:50%; transform:translateY(-50%);
  width:calc(20.6 * var(--px)); height:calc(20.6 * var(--px)); border-radius:50%; background:#fff;
  display:flex; align-items:center; justify-content:center;
  color:var(--red); font-size:calc(15 * var(--px)); line-height:1;
}
.accordion-header::after{
  content:""; position:absolute; right:calc(10 * var(--px)); top:50%;
  width:calc(8 * var(--px)); height:calc(8 * var(--px));
  border-right:calc(1.9 * var(--px)) solid var(--red); border-bottom:calc(1.9 * var(--px)) solid var(--red);
  transform:translateY(-30%) rotate(-135deg); transition:transform .25s ease;
}
.accordion:not(.active) .accordion-header::after{transform:translateY(-70%) rotate(45deg);}
.accordion-content{max-height:0; overflow:hidden; visibility:hidden; transition:max-height .4s ease, visibility 0s linear .4s;}
.accordion.active .accordion-content{max-height:calc(1500 * var(--px)); visibility:visible; transition:max-height .4s ease, visibility 0s;}
.accordion-content p{margin:calc(6 * var(--px)) 0 0 calc(2 * var(--px)); font-family:var(--ff-maru); font-weight:700; font-size:calc(15 * var(--px)); line-height:calc(21.5 * var(--px)); letter-spacing:calc(0.45 * var(--px)); color:#000;}
.accordion-content .faq__small{font-weight:500; font-size:calc(13.1 * var(--px)); line-height:calc(17.8 * var(--px)); letter-spacing:calc(-0.13 * var(--px)); margin-top:calc(10 * var(--px));}
.faq__foods{display:grid; grid-template-columns:repeat(3, calc(121.7 * var(--px))); column-gap:calc(18.7 * var(--px)); row-gap:calc(7 * var(--px)); margin:calc(53 * var(--px)) 0 0; padding:0; list-style:none;}
.faq__foods img{display:block; width:100%; border-radius:calc(9.4 * var(--px));}
.faq__foods span{display:block; font-family:var(--ff-maru); font-weight:500; font-size:calc(10.3 * var(--px)); line-height:calc(15 * var(--px)); letter-spacing:calc(-0.5 * var(--px)); color:#000; white-space:nowrap;}
.faq__img{display:block; width:100%; margin-top:calc(13 * var(--px));}
.faq__img--oodoburu{width:calc(396 * var(--px)); margin-left:calc(2.6 * var(--px)); margin-top:calc(8 * var(--px));}
.faq__caution{margin-top:calc(17 * var(--px)) !important; margin-left:calc(16 * var(--px)) !important;}
.btn-white{
  display:flex; align-items:center; justify-content:center; position:relative;
  width:calc(355.7 * var(--px)); height:calc(60.8 * var(--px)); margin:calc(10 * var(--px)) auto 0;
  background:#fff; border:calc(1.87 * var(--px)) solid #000; border-radius:calc(37.4 * var(--px));
  color:#000; font-family:var(--ff-mincho); font-weight:700; font-size:calc(22.5 * var(--px)); line-height:1;
}
.btn-white__arrow{position:absolute; right:calc(18 * var(--px)); top:50%; width:calc(9 * var(--px)); height:calc(9 * var(--px)); border-top:calc(1.87 * var(--px)) solid #000; border-right:calc(1.87 * var(--px)) solid #000; transform:translateY(-50%) rotate(45deg);}
.btn-white--lg{height:calc(68.3 * var(--px)); margin-top:calc(27 * var(--px)); font-family:var(--ff-maru);}
.faq__foot{margin:calc(55 * var(--px)) calc(-24 * var(--px)) calc(-25 * var(--px)); padding:calc(10 * var(--px)) calc(24 * var(--px)) calc(25 * var(--px)); background:#fff;}
.hosoku{margin:0; padding:0 calc(5 * var(--px)) calc(12 * var(--px));}
.hosoku ul{margin:0; padding:0; list-style:none;}
.hosoku li{font-family:var(--ff-maru); font-weight:500; font-size:calc(11.2 * var(--px)); line-height:calc(15.9 * var(--px)); color:#525252; padding-left:calc(12 * var(--px)); text-indent:calc(-12 * var(--px)); margin-bottom:calc(2 * var(--px));}
.hosoku li.mt{margin-top:calc(14 * var(--px));}
.sns{display:flex; justify-content:center; gap:calc(40 * var(--px)); margin:calc(48 * var(--px)) 0 0; padding:0; list-style:none;}
.sns a{display:flex; align-items:center; justify-content:center; width:calc(49.7 * var(--px)); height:calc(49.7 * var(--px)); border-radius:calc(9.4 * var(--px));}
.sns a img{width:100%;}
.sns__line{background:#06C755;}
.sns__line img{width:calc(33 * var(--px)) !important;}
.sns__x{background:#000;}
.sns__x img{width:calc(30 * var(--px)) !important;}
.copy{margin:calc(20 * var(--px)) 0 0; text-align:center; font-family:var(--ff-maru); font-weight:500; font-size:calc(9.4 * var(--px)); line-height:1.6; color:#000;}

/* ============================================================
   hover (PC)
   ============================================================ */
@media screen and (min-width:521px){
  .tel-area__num{pointer-events:none; cursor:default;}
}
@media (hover:hover){
  a:hover{opacity:.8;}
  .nav-pills a:hover, .type-box__grid a:hover{opacity:.85;}
}
[tabindex="-1"]:focus{outline:none;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{transition:none !important;}
}

/* ============================================================
   レスポンシブ（参照: hirai-wa.com/2026reitouosechi/ と同じブレークポイント）
   ============================================================ */
@media screen and (min-width:1441px){ .contents{right:20%;} }
@media screen and (min-width:1641px){ .contents{right:30%;} }
@media screen and (max-width:1100px){
  :root{--px: calc(50vw / 450);}
  .contents{right:0; width:50%;}
  .menu{--px: calc(40vw / 400); left:5vw; width:40%;}
}
@media screen and (max-width:680px){
  :root{--px: calc(100vw / 450);}
  body{background:#fff;}
  .contents{position:static; width:100%; margin:0;}
  .menu-ashirai{display:none;}

  /* SPヘッダーロゴ（参照サイト踏襲） */
  .sp-logo{display:block; width:130px; position:absolute; top:12px; left:20px; z-index:2;}
  .fv{margin-top:50px;}

  /* SPメニューボタン */
  .sp_menu_btn{position:fixed; top:0; right:0; z-index:9997;}
  .sp_menu_btn button{display:block; cursor:pointer; width:50px; height:50px; border:2px solid #E60012; background:#fff; padding:0;}
  .sp_menu_btn button p{margin:0; font-size:1.2rem; line-height:1; color:#E60012; font-family:var(--ff-mincho); font-weight:700;}
  .sp_menu_btn button span.bar{display:block; height:3px; width:25px; background:#E60012; margin:3px auto; transition:all .2s; transform-origin:0 0;}
  .sp_menu_btn button.active .bar1{transform:rotate(45deg) translate(3px,-3px);}
  .sp_menu_btn button.active .bar3{transform:rotate(-45deg) translate(2px,5px); margin-top:12px;}

  /* ドロワーメニュー（参照: 350px 右から） */
  .menu{
    --px: calc(350px / 400);
    top:0; bottom:0; left:auto; right:-350px; width:350px; height:auto;
    transform:none; z-index:101;
    /* iOS Safari はステータスバー/ツールバー部分を「端に接する固定要素の背景色」で塗るため、メニュー本体に不透明色を持たせる */
    background:#f7f1eb url(../images/2027osechi/bg_hirai.webp) center top / cover no-repeat;
    visibility:hidden;
    transition:right 1s cubic-bezier(.16,1,.3,1), visibility 0s linear 1s;
  }
  .menu.open{right:0; visibility:visible; transition:right 1s cubic-bezier(.16,1,.3,1), visibility 0s;}
  html.is-menu-open{overflow:hidden;}
  html.is-menu-open, html.is-menu-open body{background-color:#f7f1eb;}
  .menu nav{
    height:100%; padding:20px 20px calc(20px + env(safe-area-inset-bottom)); overflow-y:auto; -webkit-overflow-scrolling:touch; overscroll-behavior:contain;
    background:none;
  }
  #top-logo{width:70%; padding-top:60px;}
}
@media screen and (max-width:520px){
  .menu{--px: calc(100vw / 400); width:100%; right:-100%;}
  body{padding-bottom:calc(90 * var(--px));}
  .sp-cta{display:block; position:fixed; left:0; right:0; bottom:0; z-index:9980; padding:calc(8 * var(--px)) calc(12 * var(--px)) calc(10 * var(--px)); background:rgba(255,255,255,.92);}
  .sp-cta .cta-bar{height:calc(64 * var(--px)); padding-top:calc(4 * var(--px)); background:#219f10;}
  .sp-cta{transition:opacity .3s ease, visibility .3s;}
  html.is-menu-open .sp-cta{opacity:0; visibility:hidden; pointer-events:none;}
  .sp-cta .cta-bar__sub{font-size:calc(15 * var(--px)); line-height:calc(20 * var(--px));}
  .sp-cta .cta-bar__main{font-size:calc(28 * var(--px)); line-height:calc(34 * var(--px));}
}
@media screen and (max-width:400px){
  .menu{width:100vw; right:-100vw;}
  .accordion.active .accordion-content{max-height:calc(1800 * var(--px));}
}
